横版游戏制作过程

本文探讨了横版游戏的设计方法,提出使用对象封装而非数组来处理地图元素,并通过双向链表连接各对象。文章还详细列举了游戏逻辑,如吃金币、顶砖块等事件及其触发条件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这次做一个横版游戏,以前都是做完游戏后,才公布源码和制作过程。这回改一下,游戏没做,先讨论设计方法。

横版游戏像“超级玛丽”“魂斗罗”,首先要解决的问题是地图问题。我以前想把整个地图存在一个大数组里,当需要检测某个地方是什么时,直接从数组中读出。这种方法并不好,只有益智类、棋牌类的游戏,地图很小时,用数组比较合适(包括上次做的纸牌)。还是用“对象”封装的方法比较好。把地图中的元素都分割成一个个对象,然后用双向链表串起来。

对象的结构:每个对象首先有一个ID,说明这个对象是什么,例如:地面、树木、障碍物、金币、砖块、玩家、敌人等等。还要有坐标、宽高。还要有贴图信息,即这个对象是由哪些图片组成的,以及这些图片的组织方法。用这样的一个结构表示游戏画面中的所有东西。然后要考虑游戏逻辑:

1.吃金币-》金钱增加

2.顶带有“?”的砖块-》金钱增加,出现蘑菇

3.人物移动、跳跃-》人物移动到新的坐标,或无法移动,或没有落到地面上,游戏失败

4.碰撞到敌人-》游戏失败

5.落下,碰撞到敌人-》敌人角色死亡...

这些逻辑,都在碰撞检测后触发。触发这些逻辑事件后,需要做两项工作:1.相应数据更改(金钱增加、或角色消失)。2.播放相应动画(角色走动、子弹的动画、金币闪烁、分数显示)。

主要工作就这些,具体实现起来,该是怎样呢?是否应继续细化结构,类、函数的接口怎样设计,图像操作和特效怎么做,下回分解。      

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值