1游戏介绍
火柴人枪战是网上一款比较好玩的小游戏,接下来的几篇文章会逐渐带着大家实现这款游戏。
今天先学习游戏人物运动上的4个细节。
2枪
第一个细节:在这个过程中我们感觉火柴人的枪很灵活,始终跟随鼠标转动。
看得出来枪和手臂是一体的,而火柴人的身体是一个单独的存在,所以我们的角色是这样的-身体和持枪的手臂是两个角色。
先来看持枪的手臂,手臂的造型是这样的,每一种枪有4个造型,因为向左向右,开枪和没开枪一共有四种, 顺序是向右静止,向右开枪,向左静止,向左开枪。
持枪手臂的代码如下,默认武器设置为第三种沙漠之鹰(手枪),不断移动到小人身上,面向鼠标指针,并且根据方向换成当前武器造型。
持枪手臂换枪的代码,一共12种武器,当武器换到12的时候,就继续从第一种武器开始。真实情况是我们还需要根据武器有没有子弹,来决定是否换到下一种武器,这里我们就不去实现了。
3游戏平台
第二个细节我们看到平台在造型中只有480的宽度,但是实际游戏中感觉平台很宽,超出Scratch舞台屏幕,它是怎么做到呢?
如果用下面的代码打算把平台变成原来的2.5倍大小
实际上它并不会变成原来的2.5倍大小,而只能变成原来的1.5倍大小。因为Scratch当中有个机制就是大角色不能超过舞台太多。
如果真想把它变成原来的2.5倍大,有一个小技巧,就是给这个角色增加一个特别小的造型。先在小造型下把它变成2.5倍大,再换成原来的造型。
4移动同步
第三个细节比较复杂一些,大家有没有发现主角的运动始终在舞台的中间位置。
但是为什么看起来主角一直在移动呢?其实是通过底部平台的运动来实现的,也就是物理当中的相对运动。当主角移动时,底部平台的位置是变化的。
当主角向左移动距离b时,主角并没有移动位置,平台向右运动同样的距离b来让主角看起来是运动的,假设敌人不动,它也会向右运动同样的距离b。
由于主角,平台和敌人三者的运动是同步的,所以在三者间加一个同步运动的广播,放在平台角色里。同时平台要及时根据主角的运动变化设置自己的X坐标。
主角角色里要根据自己的运动速度和方向设置平台的X坐标。同时在按下a,d键(左右移动)的时候要换运动造型和播放脚步声。
敌人的角色设置如下,这里我们要用一个变量存储敌方X坐标到平台中心的位置(注意是平台,而不是舞台),每次敌方面向主角运动的时候都是改变这个X坐标变量。
每次舞台同步的时候就把敌人的位置也同步变化,并且让他一直面向主角运动。要注意的是Scratch中,如果想把某个角色移到舞台之外是做不到的,比如下图中敌人是没办法挪到舞台之外的。所以在敌方X坐标的绝对值小于230时对其隐藏(感觉移到了舞台之外)
同时敌方在开始的时候从平台的左右两边出现,也就是X坐标在-500或者500的位置出现。不断变换走路的造型。
5主角跳跃和坠落
给主角增加按W键跳起的功能。同时让平台移动的同步“电波”也控制到主角的下落,如果没在平台就下落,模拟重力的实际存在。最后如果落在平台上要能止住下落。
6课后问题和思考
为了简化起见,我没有加开始画面和开始按钮,这可以留待游戏后期再进行完善。除此之外,大家有没有发现其他需要完善的地方呢?
我发现了几个问题 (bug):
敌人在游戏刚开始时可能出现在舞台,但随后消失。
主角坠崖后没有隐藏。
如果主角落崖后,敌人可以走出平台,悬空的状态
敌人到主角落崖的位置会出现来回摇摆的状态
大家可以思考下如何解决,下篇文章会揭晓答案:)
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved