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加入特殊碰撞队列中,在特殊碰撞队列中的碰间检测就是
精确的检测了。

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


那些游戏开发牛人的博客和IT学习网站

游戏大牛的博客 1.吴云洋(Cloud),网名云风,毕业于中南大学,原网易游戏核心成员、杭州研究中心总监,是网易《大话西游》、《梦幻西游》等游戏的重要开发者。2011年9月5日宣布已从网易辞职。 博客...
  • liulongling
  • liulongling
  • 2016年06月30日 12:38
  • 3077

游戏开发中常用的设计模式

使用设计模式来提高程序库的重复利用性是大型程序项目开发必须的。但是在“四人帮”的设计模式概述中提到了23种标准设计模式,不但难以记住,而且有些设计模式更多的适用于应用程序开发,对游戏项目引擎设计并没有...
  • duzhi5368
  • duzhi5368
  • 2008年04月22日 11:33
  • 9479

游戏开发日志 处理

在游戏开发的过程中,我们需要记录一些日志,以便以后了解游戏运行的情况,以及根据日志发现并处理游戏中的突发情况。 一,游戏日志可以分为以下几种: 1)系统日志 2)用户操作日志 3)异常日志,即...
  • TRGVBZ
  • TRGVBZ
  • 2016年04月16日 22:22
  • 837

对开发日志的一些心得

开发日志是很能体现一个开发者能力和逻辑思维的项目。写得好的程序,日志有序完备,能够用于跟踪关键路径,方便定位问题,有时还可以帮助进行性能优化。而比较差的代码,要么日志残缺不全,要么絮絮叨叨还把握不了关...
  • runyon1982
  • runyon1982
  • 2015年10月10日 09:23
  • 995

老婆日记[爆笑]

你们家里也发生这样的是吗?那结婚好像也有点可取之处哦。   半夜,醒来,感觉老公紧抱着我,窃喜!心想:这家伙平时挺酷的,没想到睡觉时一不小心就露馅了。于是感动不已,正准备好好享受他的拥抱时,听见他迷迷...
  • web718
  • web718
  • 2005年09月23日 16:46
  • 978

NDS开发日志(五)

 昨天下载了openssl-0.9.8g的源代码。把/openssl-0.9.8g/include下的文件夹openssl拷贝到/devkitPro/libnds/include,解决了编译的问题,链...
  • Wendell_Gong
  • Wendell_Gong
  • 2008年01月10日 21:49
  • 1145
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:2006_06_23游戏开发日志
举报原因:
原因补充:

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