响应 《畅想 silverlight 如何实现超级玛丽》 一文
超级玛丽(俗称:打蘑菇),是孩童时期最爱的游戏之一。这个游戏本身似乎并不复杂,规则统一,却又颇有趣味性。对红白游戏机的有限性能来说,能做出这种游戏确实是很了不起,不知道silverlight版本会有多大难度呢?
尝试一下吧。
超级玛丽是单人游戏。游戏的主角只有一个,这个主角有几个特点:
1.站立
2.蹲下
3.屈身跳跃
4.滑行
5.跳跃
6.变大,变小
7.射击炮弹
8。空中改变方向
9.加速跑
10.在水中游泳
可见,玛丽的技能蛮多,可能也正是因为这样才那么有趣吧。
游戏地图是一副长长的卷轴。地图有很多部件的特性是值得研究的:
1.地板,可以站立其上
2.背景和云彩,可以随意穿越
3.水管,阻挡前进和支持站立,有些还能触发切换地图的事件
4.砖头,可以顶破消失,可以阻挡,可以站立,有些还能触发条件
5.金币,穿越会消失,也可以和砖头联动,组成一个事件
6.空洞,掉下去会死掉
7.“怪”,智能角色
8.旗杆,穿越过关
9.其他
然后游戏本身也有一些数据统计,和菜单的功能:
1.选择菜单
2.时间,金钱,“机数”,分数(据说到多少百万可能奖机,但从来没遇到)
<p$1$2$3$4$5$6>
我的看法:
角色,有很多改变所处坐标的功能,同时也有事件可以触发,比如死亡之类的动画,让其他对象来触发似乎是不错的设计。传统的玛丽,视角似乎都是紧跟着玛丽本身,改变的是地图。
地图是比较值得研究的,上面的物件一般都阻挡,或者穿越的功能,而地图自身也有一些判定,比如空洞就是掉到地图的外面了。阻挡和穿越主要的代码在玛丽身上完成,因为物件是静态的。
当玛丽和怪相遇所产生的事件应该怎样处理,依照谁死谁负责的原则分配代码。
既然有事件处理,就有相对的事件触发。事件触发由系统我想让系统轮询,所以不想要太多的触发器(虽然也许并不是问题)。原则上很多触发器应该放在地图的物件之上,但如果地图很大,那就比较麻烦,可以加一些限制条件,比如当前可视地图下才轮询该触发器。
请大家继续~