欢迎来到天天文库
浏览记录
ID:17724246
大小:1.34 MB
页数:17页
时间:2018-09-05
《silverlight.xna(c#)跨平台3d游戏研发手记:(十一)3dslg(策略战棋游戏)设计案例》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、某天,当你一不小心发现已经够随心所欲的驾驭3D摄像机之时,任何类型的3D游戏都将成为囊中玩物,过往如烟。回忆逝去的童年让我极度惦记的SLG策略战棋游戏,或许对于大多数玩家来说,它费时费力不被讨好;然而深邃的内涵和无限可能的战略战术始终占据着我内心很大一片天地。于是,在本系列前5节2DSLG知识原理的基础上,http://pifu.ttplay8.cn萌发了移植一款基于平面的3DSLGDemo计划。首先,什么是基于平面的3DSLG游戏?大伙不妨先看看以下几款该类型经典游戏巨作截图-《英雄无敌6》、《文明5
2、》和《三国志11》:无论地形单元格为四边形或六边形,其整体地貌都不存在高低起伏(NoHeightMap);用游戏开发者的话说便是:三维空间中,一条轴用做旋转,http://www.zhaicao8.com另外两条轴形成类似2D中的Canvs平面承载对象。这样的设计更像是一盘3D化棋局,地形好比棋盘盘面,角色仿若棋子,附带一个环绕棋盘的360°轨道摄像机,无论视野还是战术方略都能得到淋漓尽致的体现。当然,除此之外,层次感更分明,基于HeightMap地形的立面3DSLG游戏亦备受日系游戏青睐,不乏大作,比
3、如《火焰纹章晓之女神》、《皇家骑士团:命运之轮》和《三国志战记2》等,该类型游戏通常需要辅以更加复杂而强大的地形编辑器,这些内容并不属于本节范畴,后续章节中若有时间再做补充:OK,做足了SLG游戏设计方面的知识准备,接下来我们要做的头等大事便是打开第4节的源码,神马差集运算、四叉树算法、蜂窝拓扑算法、A*算法等等统统一并拿来,将其中的Point改成Vector3(即原先的Point(X,Y)更换成Vector3(X,0,Y)),嘿嘿,原来编码也是可以这么浮云的。举个例吧,其中的DirectionScan
4、方法在移植前后的对比: 2D游戏中所有我们看得到的图形都是通过Image图片的形式予以呈现,而到了3D游戏中,这条路已经行不通了。比如我们要绘制3D四边形或3D蜂窝状地形单元格,此时就得自己编写基于三角面合成的3D面控件:Shape3D /// /// 3D图形(面)基类 /// public abstract class Shape3D : Object3D { protected Camera3D camera;
5、 protected Texture2D texture; protected BasicEffect effect; protected short[] indices; protected VertexPositionTexture[] vertices; public Shape3D(ContentManager content, GraphicsDevice device, Camera3D camera)
6、: base(content, device) { this.camera = camera; effect = new BasicEffect(device) { TextureEnabled = true }; } string _TextureName; /// /// 获取或设置纹理资产名称 /// public string
7、TextureName { get { return _TextureName; } set { _TextureName = value; texture = content.Load(value); effect.Texture = texture; } } public override voi
8、d Draw(GameTimerEventArgs e, ModelBatch modelBatch) { effect.GraphicsDevice.BlendState = BlendState.AlphaBlend; //设置透明覆盖(透明显示纹理alpha透明部分) effect.World = World; effect.View = camera.View;
此文档下载收益归作者所有