有一只会射子弹的贪食蛇,你见过吗?

在游戏编程学习过程中,我们可以有意识地对游戏案例进行一些改进和创新,这样不仅能增进学习效果,还能提高编程能力。

这里简单聊聊改进的思路,一般可以从两方面考虑:一是改变原有的玩法规则,二是综合不同案例的玩法。

下面以《趣学Python游戏编程》一书中的案例“贪食蛇”来进行说明。

《趣学Python游戏编程》第四章案例“贪食蛇”

贪食蛇相信大家都玩过,对它的游戏规则也再熟悉不过:在游戏中贪食蛇可以朝上下左右四个方向移动,吃到食物身体加长,这似乎已成为了一种思维定势。要想做出改变,我们首先需要在思维上进行突破。不妨对游戏规则进行逆向思考,比如可以问自己这两个问题:贪食蛇只能朝上下左右四个方向移动吗?贪食蛇的身体只能增加而不能减少吗?实际上问题的答案正是游戏改进的思路。

首先改变贪食蛇移动方向的限制,让贪食蛇可以任意方向移动。这需要对贪食蛇坐标的计算方式进行修改,通过蛇头角度值来确定坐标增量。但是这样一来,贪食蛇移动时的身体会显得怪怪的。因为案例中蛇身是用一个个小方块表示的,如果斜向移动时身体感觉脱节了。怎么办呢?于是想到用小球来替换方块作为蛇的身体,这样不管朝哪个方向移动,身体都是由一串连贯的小球组成。恰好书中第一章就是“弹跳小球”案例,可以用现成的图片资源。

《趣学Python游戏编程》第一章案例“弹跳小球”

接下来改变蛇身不能减少的规则。简单的做法是在场景中增设的一个debuf道具,当贪食蛇碰到后身体长度减一。这实际上是引入了一种惩罚机制,显得有些消极。有没有更积极的做法呢?学过本书的童鞋知道第八章是一个“飞机大战”案例,玩家可以发射子弹来射击敌机。可不可以借用飞机大战的规则,让贪食蛇将身体小球作为子弹发射出去呢?这也是减少身体长度的一种手段,但明显玩家可以主动控制,因此显得更加积极主动。

《趣学Python游戏编程》第八章案例“飞机大战”

现在我们已对贪食蛇游戏规则进行了比较大的改进,接下来可以考虑进一步完善。既然贪食蛇拥有了射击这一项新能力,我们需要考虑如何运用这项能力。在书的第五章介绍了“打字”游戏案例:屏幕底部会源源不断升起一些字母气球,玩家通过敲打键盘字母来消除气球。这里我们可以将该游戏的部分玩法综合运用到贪食蛇游戏中,即保留气球的生成和运动规则,同时去掉打字消除的功能,改由贪食蛇发射子弹来消除。

《趣学Python游戏编程》第五章案例“打字”

最后需要实现游戏的结束规则,因为对于任何游戏来说,结束规则都是必不可少的。原贪食蛇游戏的结束规则是:当蛇头碰到窗口四周或自己身体游戏结束。现在除了保留原有结束规则,还可以引入新的规则:每当蛇头撞到气球,贪食蛇身体长度减一,当减为零时游戏结束。此外,我们发现原贪食蛇游戏没有胜利的结束规则,每次游戏都会以失败告终,感觉这样对玩家不太友好。我们完全可以引入获胜的规则,比如设置游戏积分,当贪食蛇发射子弹击中一个气球加10分,累计100分玩家胜利。

经过上述一番改造,贪食蛇游戏已经面(焕)目(然)全(一)非(新)了。是不是觉得很有趣呢?或许这就是编程的乐趣吧。让我们多动手多实践,一起享受编程的乐趣!


下面从玩法设计的角度进行概括总结,可能更有启发意义。

下图展示了游戏玩法的关键要素,设计一款游戏可针对这几点分别设计;改进现有游戏也可考虑这几点,从一个或多个方面进行拓展。

下面分别针对上面各要素进行说明。

1 角色

  • 改变原有角色

改变贪食蛇的外观属性,将蛇身方块变为小球

改变贪食蛇的移动行为,原来只能朝上下左右四个方向移动,改为可以朝任意方向移动

  • 增添新角色

增添子弹角色,保留其原有的移动方式(与“飞机大战”中的一致),外观改为小球

增添气球角色,保留其原有的生成及移动方式(与“打字游戏”中的一致)

2 交互

玩家与角色交互

  • 改变原有交互

原来通过键盘上下左右键控制贪食蛇朝四个方向移动,修改为用左右键控制蛇头的旋转角度

  • 新增交互

按空格键贪食蛇发射子弹,同时身体长度减一

角色之间的交互

  • 新增交互

新增贪食蛇与气球的交互,蛇头碰到气球身体长度减一

新增子弹与气球交互,子弹击中气球分数加十

3 目标

  • 新增目标

蛇头碰到气球身体长度减一,若减为零游戏结束

子弹击中气球分数加十,若积分达到一百游戏胜利

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值