用cocos2d 2.1制作一个过河小游戏(3): 船与河岸Sprite设计

本文详细介绍了在使用cocos2d 2.1开发过河小游戏时,BoatSprite(船)和BankSprite(河岸)的设计思路。游戏目标是让所有角色从右岸到达左岸,船承载人数有限,且至少一人驾驶。设计中,BoatSprite和BankSprite分别记录各自侧的人物数量,但是否需要存储Person列表引发思考。最终决定BankSprite仅使用数量属性,而BoatSprite采用PersonList记录船上人员状态,以防止重叠。文章提供了相关代码实现。
摘要由CSDN通过智能技术生成

好,我又来了......


这次来讲下船BoatSprite和河岸BankSprite的设计。在这个过河游戏中,我们有两个河岸:左岸与右岸。每个岸上都能站人。游戏开始的时候3个牧师和3个魔鬼都是站在右岸上,他们的目标是要全部都到左岸上去。河边有条船,船上最多可以坐两人,而且至少要有一个人船才能开过去。具体的信息就是这些。


在我们的设计中,船是BoatSprite,河岸是BankSprite。


下面来讲讲我的思路吧。接着上一篇讲述,我们知道,船也是应该有一个Side属性来标识其目前是在河的哪一边。河岸也应该有Side属性,不过这个是它的确定属性,一旦设定后就不需要改变了。接着,每次游戏中我们都需要判断每边PriestSprite和DevilSprite的个数,好决定玩家是胜利了还是挂了,所以船和河岸都应该记录下此时船上/岸上PriestSprite和DevilSprite的个数。


接下来有个问题其实困扰了我一段时间:我们在BoatSprite和BankSprite中是否需要设置一个NSMutableArray来存放当前存在于船上/河岸上的Person呢?一开始我是比较倾向于都设置这样一个Array的,当人物从船上跳到岸上时,船上相应的Person就被remove掉,然后岸上的Array中加入这一Person。这个想法是非常自然而然的。但是后面转念一想:其实在岸上保留这样的一个Person的队列到底有没有什么实际作用呢?从上一遍我们知道,我们操作人物都是通过触屏的,当触屏事件发生时,触摸到PersonSprite会首先响应到该事件并委托给游戏逻辑BaseLayer来处理。无论人是从船上跳到岸上还是从岸上跳到船上,我的Ba

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值