早期开发日志

作者使用clanLib开发库尝试复刻NEOGEO平台上的经典游戏炸弹人,并计划进一步开发其他怀旧游戏。文章详细介绍了游戏开发过程中的关键技术挑战,如人物平滑移动、碰撞检测等。

之前在学校做的那个,当时还是比较满意的。现在越看越别扭。

 

说的是1.1版本,其实是重新开发的。不过也没有什么新意,主要想把NEOGEO上面的炸弹人游戏完整的模拟出来。计划今后可能还会把魂斗罗之类的旧游戏都做一做,当技术达到一定层次的时候。再实现自已的游戏,不过那都是以后的事了,扯得远了。

 

游戏用的是clanLib开发库,说来惭愧,游戏制做从开始到现在已经过个三个月了。实质上还没有什么进展,竟然连个游戏地图编辑器都还没有完成。尽管前面的时间是用来了解这个开发库,不过时间也太长了点吧,原因应该就是自已的懒惰了吧。(看来还得找份工作干一干才行哪)

 

(注:下面neogeo通指在neogeo上的炸弹人游戏,bomman通指我现在所做的游戏)

游戏设计:

1.人物的平滑移动

  经过观察,发现NEOGEO640X480象素的情况下,人物移动是以每4象素为单位。一个方格要移动5次才能走完,即每个方格为20X20象素的面积。而且我在试验的时候,在64fps以及速度调成与NEOGEO中人物的最快及最慢速度,画面还是平滑的,都没有问题。

 

另外还有一个原来比较头痛的问题就是人物移动速度的指标,本来打算把人物移动速度分成10个等级。但是我发现就算是最快的每个fps都移动(每次移动定死为4个象素),人物还不能达到NEOGEO中的那种最快速度,可是如果提供的移动不是以4个象素为单位,那么当人物移动的时候就会有差几个象素的麻烦情况出现。人有时候就是会犯傻,后来我注意到,其实每个fps不一定只调用一次人物移动,可以根据时间,有时可以调用两次,有时也可以不调用,那么对于人物移动的碰撞检测就不会造成什么麻烦。使用这种方式就可以达到上面所说的效果啦。

 

 

2.碰撞检测

  1.0的碰撞检测做得很次,当每做一次碰撞检测都要遍历所有的物体,所幸的是当时游戏中的物体数据并不多,大约50个左右。根据上面所说的,移动的最小单位为4象素,所以这次打算以160x120的数组保存碰撞检测的数据。因为在大多数情况下,我们只要知道是否发生碰撞,而不是知道与谁进行碰撞。它的结构体在概是这个样子的:

struct {

    int hard_box;  //格子的硬性碰撞物数量

int box;  //格子有多少碰撞物,为了支持后面的穿墙功能,近而区分是否可以穿透的墙

int man;      //当前格子的人物数量

int prize;     //格子的奖品数量
};//嗯,算下来数据量也只有300k,还是可以接受的哦。

 

但是有些特别的对象可能会需要知道,碰撞的是谁,比如火焰,这个时候就可以根据格子中的数据线性的搜索相关的类别。

 

 

 

 

 

 

4.移动时人物的调整

在内存中的数据可能是这样的(只列出人物数量的数据,假设一个人占用2x2的格子)

0,0,0,0,0,0,1,1,0

0,0,1,1,0,0,1,1,0 

0,0,1,2,1,0,0,0,0

0,0,0,1,1,0,0,0,0

如果最左边的人物一但移动,数据可能会变成这样:

0,0,0,0,0,0,1,1,0

0,1,1,0,0,0,1,1,0 

0,1,1,1,1,0,0,0,0

0,0,0,1,1,0,0,0,0

 

 

3.游戏中部分主要数据的组织

  一个包含所有物体ID的排序,用于绘图

  一个包含所有人物ID数组,用于接收输入数据

  一个包含所有炸弹ID的数组

  一个包含所有BOX ID的数组

  一个包含所有奖品 ID 的数组

 

4.一点点的优化:

  也许可以把所有物体的各种表都进行排序,那么寻于查找碰撞物体应该有个加速。

  而且各种排过序的物体再近行总排序是很快的,所以之前的排序对显视物体的排序并不

  会增加太大的负担。

  不过对于物体数量不超过150个的游戏,分了类之后就更少啦,是否是必要的呢?
内容概要:本文介绍了AI Agent智能体的基本概念及其应用场景,并详细讲解了如何从零开始打造AI Agent。首先,文章解释了人工智能、机器学习、深度学习等基础知识,以及大语言模型(LLM)的特点和应用。接着,文章深入探讨了AI Agent的概念、与传统程序的区别,以及其在自媒体、智能客服、自动驾驶、股票交易和游戏NPC等多个领域的应用。随后,文章以字节跳动的“扣子(COZE)”平台为例,详细介绍了打造AI Agent的七个步骤,包括需求梳理、软件选型、提示工程、数据库搭建、UI界面构建、测试评估和部署发布。最后,文章通过两个项目实战案例——抖音短视频文案转小红书笔记和小红书文案+OCR+飞书同步,展示了如何实际应用AI Agent进行内容创作和数据处理。 适合人群:对AI和机器学习有一定了解的研发人员、产品经理和技术爱好者,特别是那些希望深入了解AI Agent应用开发过程的人群。 使用场景及目标:①帮助读者理解AI Agent的基本概念及其与传统程序的区别;②指导读者如何使用COZE等平台创建自己的AI Agent;③通过具体案例展示AI Agent在内容创作和数据处理方面的实际应用。 其他说明:本文不仅提供了理论知识,还结合了实际操作步骤和代码示例,帮助读者更好地理解和实践AI Agent开发。建议读者在学习过程中结合实际项目进行实践,并尝试调整和优化各个步骤中的参数和设置,以获得最佳效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值