火柴人用枪打仗怎么画图片(教你做火柴人枪战游戏-运动篇)

1游戏介绍

火柴人枪战是网上一款比较好玩的小游戏,接下来的几篇文章会逐渐带着大家实现这款游戏。

今天先学习游戏人物运动上的4个细节。

2枪

第一个细节:在这个过程中我们感觉火柴人的枪很灵活,始终跟随鼠标转动。

看得出来枪和手臂是一体的,而火柴人的身体是一个单独的存在,所以我们的角色是这样的-身体和持枪的手臂是两个角色。

先来看持枪的手臂,手臂的造型是这样的,每一种枪有4个造型,因为向左向右,开枪和没开枪一共有四种, 顺序是向右静止,向右开枪,向左静止,向左开枪。

持枪手臂的代码如下,默认武器设置为第三种沙漠之鹰(手枪),不断移动到小人身上,面向鼠标指针,并且根据方向换成当前武器造型。

持枪手臂换枪的代码,一共大流量卡12种武器,当武器换到12的时候,就继续从第一种武器开始。真实情况是我们还需要根据武器有没有子弹,来决定是否换到下一种武器,这里我们就不去实现了。

3游戏平台

第二个细节我们看到平台在造型中只有480的宽度,但是实际游戏中感觉平台很宽,超出Scratch舞台屏幕,它是怎么做到呢?

如果用下面的代码打算把平台变成原来的2.5倍大小

实际上它并不会变成原来的2.5倍大小,而只能变成原来的1.5倍大小。因为Scratch当中有个机制就是大角色不能超过舞台太多。

如果真想把它变成原来的2.5倍大,有一个小技巧,就是给这个角色增加一个特别小的造型。先在小造型下把它变成2.5倍大,再换成原来的造型。

4移动同步

第三个大流量卡细节比较复杂一些,大家有没有发现主角的运动始终在舞台的中间位置。

但是为什么看起来主角一直在移动呢?其实是通过底部平台的运动来实现的,也就是物理当中的相对运动。当主角移动时,底部平台的位置是变化的。

而敌人也要跟随平台的移动而移动,当主角向右移动距离a时,主角并没有移动位置,平台向左运动同样的距离a来让主角看起来是运动的,假设敌人不动,它也会向左运动同样的距离a。

当主角向左移动距离b时,主角并没有移动位置,平台向右运动同样的距离b来让主角看起来是运动的,假设敌人不动,它也会向右运动同样的距离b。

由于主角,平台和敌人三者的运动是同步的,所以在三者间加一个同步运动的广播,放在平台角色里。同时平台要及时大流量卡根据主角的运动变化设置自己的X坐标。

主角角色里要根据自己的运动速度和方向设置平台的X坐标。同时在按下a,d键(左右移动)的时候要换运动造型和播放脚步声。

敌人的角色设置如下,这里我们要用一个变量存储敌方X坐标到平台中心的位置(注意是平台,而不是舞台),每次敌方面向主角运动的时候都是改变这个X坐标变量。

每次舞台同步的时候就把敌人的位置也同步变化,并且让他一直面向主角运动。要注意的是Scratch中,如果想把某个角色移到舞台之外是做不到的,比如下图中敌人是没办法挪到舞台之外的。所以在敌方X坐标的绝对值小于230时对其隐藏(感觉移到了舞台之外)

同时敌方在开始的时候从平台的左右两边出现,也就是X坐标在-大流量卡500或者500的位置出现。不断变换走路的造型。

5主角跳跃和坠落给主角增加按W键跳起的功能。同时让平台移动的同步“电波”也控制到主角的下落,如果没在平台就下落,模拟重力的实际存在。最后如果落在平台上要能止住下落。

6课后问题和思考

为了简化起见,我没有加开始画面和开始按钮,这可以留待游戏后期再进行完善。除此之外,大家有没有发现其他需要完善的地方呢?

我发现了几个问题 (bug):

敌人在游戏刚开始时可能出现在舞台,但随后消失。

主角坠崖后没有隐藏。

如果主角落崖后,敌人可以走出平台,悬空的状态

敌人到主角落崖的位置会出现来回摇摆的状态

大家可以思考下如何解决,下篇文章会揭晓答案:)


友情提醒: 请添加客服微信进行免费领取流量卡!
QQ交流群:226333560 站长微信:qgzmt2

原创文章,作者:sunyaqun,如若转载,请注明出处:https://www.dallk.cn/42192.html

(0)
sunyaqunsunyaqun
上一篇 2024年4月18日
下一篇 2024年4月18日

相关推荐

发表回复

登录后才能评论