传统横版游戏demo的设计与开发过程.pdfVIP

  • 11
  • 0
  • 约1.32万字
  • 约 57页
  • 2019-08-28 发布于辽宁
  • 举报
传统横版游戏设计与开发过程 游戏场景 • Cocos2d-x引擎提供Scene类作为游戏场景 • 游戏场景即展现给玩家的画面,可以包括多个图层(layer)和多个精 灵 (Sprite )等 • Cocos2d-x 引擎提供接口用于场景切换,例如从菜单向读取画面切换 从读取画面向游戏关卡切换等。 - 游戏场景 • 游戏场景的地图、物体、对话等具体逻辑均需根据需求并利用引擎提 供的接口逐步实现; • 游戏的基本运算思路为,实现场景的update接口,完成每帧所需要的 运算与渲染操作; • 引擎提供Action类可以方便的完成各类简单的动作 但提供的功能和 本demo需求不太相符 因此没有大量使用; • 接下来将分别从地图、游戏物体、对话和场景逻辑介绍游戏设计和开 发过程 地图 • 使用免费软件Tiled Map Editor制作 • 需要自行绘制地图贴图素材 • Cocos2d-x引擎对该软件有良好的支持,可以直接从中读取贴图、贴 图自定义属性、自定义对象等信息在代码中进行处理 地图 • 所使用的地图素材: 地图碰撞 • 全部由32像素*32像素的方块构成,被称为瓦块(Tile ) • 瓦块分为两个大类:包含碰撞逻辑的瓦块和仅作为贴图显示的瓦块 地图碰撞 • 包含碰撞逻辑的瓦块分为3个子类: • 一般瓦块:整个瓦块都有碰撞判定,物体无法进入其中; • 平台(Platform)瓦块:瓦块可以从两侧和下方通过,但无法直接从上 方通过; • 斜坡瓦块:瓦块记录坡度(HeightMask)信息,根据坡度信息完成碰撞 检测; 例如一个45度的斜坡的高度信息,记录x为0-31的 像素点的高度信息,分别从1到32 。 地图碰撞 • 根据特殊逻辑再细分为静止瓦块和可动瓦块,可动瓦块分为自动处理 和事件触发两种 玩家靠近后会自动打开的门 玩家触发事件后会打开的门 地图碰撞 • 地图工具中所完成的相关设置 • 记录有碰撞逻辑的瓦块的信息: • type:99为一般瓦块 2为平台瓦块 1为斜坡瓦块 5为自动门 10为 触发门 • 斜坡瓦块需要记录坡度信息,本demo不考虑圆弧形地形,所以仅记 录左右端点的高度信息即可,即left和right值 地图碰撞 • 记录碰撞信息的相关代码 • 地图的读取和渲染信息全部由引擎提供的库进行处理,碰撞信息处理 需要自行实现 • 存储瓦块碰撞信息的自定义数据结构: • 需要记录每个瓦块的位置信息与碰撞信息 地图碰撞与游戏物体 • 碰撞逻辑相关代码 • demo 中的自定义游戏物体分为两大类:地面物体和飞行物体。 • 地面物体需记录是否位于地面,如果非位于地面,则对其施加重力 直到下落至触发碰撞为止,不会从上方穿越平台瓦块。例如玩家,人 形敌人。 • 飞行物体任何时间不受重力作用,会穿越平台瓦块。例如飞行器,子 弹。 地图碰撞与游戏物体 • 地面物体类 与地图碰撞有关的成员: semiWidth :物体半宽度信息 height:物体全高度信息 legLength:物体腿长(一般为半高度,用于计算人形物体中心点位置) verticalRayCastLength :物体竖直向碰撞检测距离 onPlatform :是否位于平台瓦块上方 onGro

文档评论(0)

1亿VIP精品文档

相关文档