2006_06_23游戏开发日志

原创 2006年06月23日 12:34:00

接下来完成的目标:玩家能在地图上行走,并且有碰撞检测。
目标队列:
1.玩能在地图上行走,并且有碰撞检测。
2.读文件地图数据
3.实现炸弹
4.实现奖品

 

?代表有部分近期完成
(*)代表近期完成
X代表近期不会制做

 

游戏系统:
程序管理器(*)
|
|--程序库初始化(*)
|
|--应用程序WINDOWS消息响应(*)
|
|--产生游戏世界(*)


游戏世界(CGameWorld)?
|
|---游戏对象ID管理器(*)
|
|----游戏地图(*)
|
|---特殊碰撞物辅助列表X
|
|----游戏主循环(*)

资源管理器  (?)
|
|---精灵资源管理(动画管理)(*)
|
|---图片管理 (X)
|
|---声音管理 (X)

输入设备管理(*)
|---输入设备接口(把所有输入信号转换为 ”上下左右AB“ 这类控制信息。(*)


相关支持系统
|
|--自定义RTTI(*)

 

 

主要游戏类关系图::
CGameObject (?)
|


|--CGameWorld (?)
|
|--CMover (?)
|        |
|        |--CBomb (X)
|        |
|        |--CPlayer (*)
|        |
|        |--CMounster (X)
|
|--CPrize (X)
|
|--CFire (X)
|
|--CCollision (*)
|        |
|        | --CBox (*)
|        |
|        | --CStone (*)
|
|--CDieMoive(*)


游戏类简单说明:
CGameObject:提供游戏对象基本接口,如对象激活、对象二进制化(序列化)、对象显视等
CGameWorld :产生游戏对象、拥有地图、可以遍历所有游戏对象
CBomb           :游戏中的炸弹,也具有障碍功能。
CPlayer          :游戏中的玩家
CMounster    :游戏中的怪物
CPrize           :游戏奖品
CBox、CStone:游戏中的碰撞物,分别是:Box能被炸坏并且可能会穿墙,CStone石头是怎样都不会变化的,但是一定是阻挡物。
CDieMoive      :死亡动画,其对象不会对任游戏对象产生作用,当人物或怪物死后就会产生。

游戏中的碰撞检测:
先说说更新后的一般碰撞规则:
1>所有碰撞物不能重叠
2>移动者在产生碰撞的的前一刻,立即停止运动。

再来看看最新的游戏地图中的格子:
struct ITEM
{
       struct
        {
           soft;   //有穿墙可以被穿透功能就可以穿透
           hard; //任何方式都不可以穿透
        }coll;

       bomb;  //炸弹ID
       fire   ;   //火焰ID
};
地图数据则类似这样  GameMap[colY][colX];
几种最当出现在事件都放在这些方格中了,当我想检测前面是否有碰撞,直接就可以地图中取出数据。这是最快的方式了。

关于炸弹的移动,箱子的移动功能的实现:
其实这些都不是目前的目标,不过还是给出相关实现的方法思路,
这两种物体其实是又能检测碰撞(移动物体)、本身自已又产生碰撞的。
对于这种物体在移动的时间,我们可以先把在地图中的相关数据抽除,并且把其自身的ID加入特殊碰撞队列中,在特殊碰撞队列中的碰间检测就是
精确的检测了。

其实现在就是两种碰撞检测方式都在同时使用,当使用数组的话就是最快的,当使用碰撞队列就是最精确的。


相关文章推荐

23、Cocos2dx 3.0游戏开发找小三之粒子系统:你那里下雪了吗?

重开发者的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/30485103 春雨惊春清谷天,夏满芒夏暑相连, ...

cocos2d-x游戏开发系列教程-超级玛丽06-CMGameScene

背景在CMMenuScene中,当用户点击开始游戏时,导演让场景进入到CMGameScene头文件class CMGameScene : public cocos2d::CCLayer,public ...

【SIKI】_06_Unity2D游戏开发-拾荒者笔记

【新增分类】 Animations 动画 ——Animation ——AnimatorController Prefabs 预制 【素材导入】 unitypackage 素材包 Sprites E...
  • jvao_q7
  • jvao_q7
  • 2017年07月26日 11:15
  • 209

[Android.游戏开发入门].part06

  • 2012年06月10日 12:11
  • 4MB
  • 下载

cocos2d-x游戏开发系列教程-中国象棋06-游戏规则

前情回顾上一个博文我们提到象棋运动的函数dealWithChess,但是只是说该函数完成了棋子的选择和移动功能其实在这个函数里,在移动棋子之前,是要对棋子的移动是否合法进行判断的,我们一起来看看如何对...

Qt 游戏开发(06) - 为游戏增加健康值和得分

之前写的文章中,大多数属于贴代码的类型,经过一段时间后,自己对于代码的理解并没什么什么裨益,反而让自己觉得写代码就是贴代码,丧失很多兴趣,水平也得不到提高。在看过那么多大牛写的文章之后,也决心结合自己...
  • WAN_EXE
  • WAN_EXE
  • 2017年01月23日 18:20
  • 470

DirectX 9.0c游戏开发手记之RPG编程自学日志之5: Drawing with DirectX Graphics (用DirectX图形绘图)(第1节)

本文由哈利_蜘蛛侠原创,转载请注明出处!有问题请联系2024958085@qq.com             从这一期起,我们进入了本书的第二部分,叫做DirectXBasics (DirectX基...

DirectX 9.0c游戏开发手记之RPG编程自学日志之12: Drawing with DirectX Graphics (用DirectX图形绘图)(第5节)

本文由哈利_蜘蛛侠原创,转载请注明出处!有问题请联系2024958085@qq.com           这一次我们继续来讲述Jim Adams 老哥的RPG编程书籍第二版第二章的第5节:Using...

Cocos2d-x 3.1.1 学习日志9--一“上一下其乐无穷”游戏开发系列一

一上一下其乐无穷

DirectX 9.0c游戏开发手记之RPG编程自学日志之17: Drawing with DirectX Graphics (用DirectX图形绘图)(第13节)

本文由哈利_蜘蛛侠原创,转载请注明出处!有问题请联系2024958085@qq.com           这一次我们继续来讲述Jim Adams 老哥的RPG编程书籍第二版第二章的第13节:Work...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:2006_06_23游戏开发日志
举报原因:
原因补充:

(最多只允许输入30个字)