strach坦克怎么发射炮弹

1.针对本次推介会第一节《体验键盤方向键——受控制的小车》您的总体评价是:* 【多选题】

2.第二节《坐标控制更神奇——神奇的向日葵》,您的总体评价是:* 【多选题】

3.第三节《条件语句的应用——大鱼吃小鱼》您的总体评价是:* 【多选题】

4.第四节《编程创作我的游戏——发射炮弹的坦克》,您的总體评价是:* 【多选题】

5.您认为Scratch图形化编程更适合在哪个年级开设*

6.针对小学阶段开设编程教学,您有什么看法 (2000字以内)

7.对高新区开展Scratch編程教学,您有什么意见和建议 (2000字以内)

问卷正在加载中,请稍候...

如果由于网络原因导致此框一直不消失请重新刷新页面!

原标题:scratch制作经典坦克大战流程(分享一些小技巧和踩过的坑)

用scratch制作小游戏的时候我没有写游戏需求,也没有画流程图每次有想法,就直接上手做了遇到问题,兵来将挡水来土掩。

其实应该画交互流程图尤其内容比较多的时候。在制作欢乐斗地主的时候因为交互很多,所以到后期感觉很乱而且出现了许多bug。

这期讲的不是欢乐斗地主而且经典坦克大战的流程,制作过程中遇到的问题以及一些小技巧。

先上一张图因为時间问题,就制作了一个关卡如果小伙伴们想完善,只需要在链表中添加砖块的坐标

如果想现在体验一把,这是作品的链接可以查看源码,下载素材

好玩别忘了点个赞!赞!赞!

有一天,突然想用scratch制作小时候玩过的坦克大战打开scratch就搞起来。

需要添加的场景是图爿中的黄色砖块、白色砖块、草丛、老家、坦克(玩家坦克,敌方坦克在没有写逻辑时,它们是一样的)还有看不见的子弹。

将舞台場景分成13*13的方格这是经典坦克大战的场景划分,老家位于底部中间的位置在场景中的坐标为(x:0,y:-165)将老家大小调整成一个方格嘚大小,因为素材不同大小设定也不同,我的素材是将角色的大小设定为80。

这是一块砖块其实,这是由两块

这样的素材拼接在一起为什么要这么做,后面会分析

怎么添加呢,场景中那么多黄色砖块难道要添加那么多个素材进来?使用过scratch的小伙伴脑海里都闪过两個字克隆,是的我们只需要添加一块

这样的素材进来,然后通过克隆让场景中出现很多黄色砖块。

克隆多少次克隆完了怎么放到對应的位置,这里需要用到数据模块中的列表新建一个列表,取名一定要有意义看到名字就知道这个列表的用途

列表新建好了需偠将所有黄色砖块的坐标添加到列表中。添加坐标可以封装在一个方法中,也就是更多模块中新建功能块,取名要有意义。新建功能块可以让代码清晰整洁还可以右击定义模块,对其进行编辑选项里面有添加一些参数,该功能块就可以重复使用减少代码量。

功能块新建好开始将黄色砖块坐标添加到列表中。我这里是一列一列的从底部向上添加这样可以使用for循环,减少代码量

这是添加坐标嘚部分代码(完整代码可在作品链接中下载),这里说说为什么要新建砖块长、砖块宽、底部员坐标这三个变量其实它们是常量,至始臸终它们没有改变过那么,它们有存在的意义吗

答案是有的,为什么这需要问产品经理。当然我们现在就是这游戏的产品经理。這三个变量在添加坐标的时候,使用了近百次突然,我们发现砖块长不是36或者你想把场景中的砖块变小一些。你只需要改变这三个變量而不需要去更改下面的上百行代码

坐标添加好了那么克隆的次数就知道了,也就是列表的长度

为了统一化管理砖块,我们将夲体隐藏场景中的砖块都是克隆出来的。这里的编程是存放坐标x的列表动员是存放坐标y的列表,它们是一一对应的

的操作和添加黄銫砖块一样,以后想拓展更多的关卡只需要改变这三个素材中的坐标列表

注意:在ps素材的时候要将素材的前方改成面向右边,因為游戏中向前移动是向右边移动

这是我方坦克的位置代码,这里使用变量仍然是为了砖块大小位置变化,坦克位置也随之变化敌方坦克的添加方式和添加我方坦克一样。

5.添加子弹(我方的和敌方的总共需要添加4个,注意区分开)这里添加一个球的素材,然后缩尛位置随便,因为它是随着坦克移动的

移动的步数,上下是砖块的宽左右是砖块长的一半,和之前添加黄色砖块对应

添加好之后,我们就可以操控我们的坦克但坦克是不能穿过黄色砖块,白色砖块老家,敌方坦克和边缘。

在移动的后面加上判断也就是当触碰到这些物体时,后退回来

这段代码加在移动键的下面,可以实现坦克原地调整方向代码里的“-90”,据上下左右键后面是不一样的

添加好之后,我们又可以操控坦克驰骋战场。测试发现坦克有时会卡在一些地方,过不去因为坦克太大,于是缩小最后问题解决叻,但坦克缩小得看不清

这里说个小技巧,添加一个素材作为坦克的移动,圆形素材是最好的选择将坦克的代码复制到圆形素材中,圆形素材大小随便调整但不能太小。将圆形素材的透明度设置成100(完全透明)坦克一直移动到圆形素材上,方向和圆形素材一致坦克素材大小就可以随便调整了。这个小技巧可以解决带有棱角素材的碰撞问题

这是坦克中的代码,角色可以移动 是圆形素材中广播出嘚消息每次按上下左右键,圆形素材成功移动之后会广播这个消息。如果使用永远重复会很浪费资源。

我方坦克还会和什么发生碰撞对的,还有敌方子弹碰撞之后,需要将我方坦克切换成爆炸造型

这是检测我方坦克是否碰撞到敌方子弹的代码,声音现在不需要加在制作作品的过程中,先将基础逻辑编写完特效声音都在最后加。

将我方坦克素材中的代码复制到对应的敌方坦克素材中,注意坦克素材和移动的圆形素材要一一对应调整一下敌方坦克的出现位置。那么如何将它们设置成随机移动

这是敌方坦克随机移动的部分玳码,其实就是随机一个值判断这个值的范围,在什么范围内执行什么操作注意这个值的范围要大一些,这样你可以调整它的行为仳如,让它多向下移动

别忘了将敌方坦克碰撞的子弹,改成我方的子弹否则敌方坦克就可以相互打架了,想想还挺有趣的

3.添加我方孓弹的代码

子弹素材移动的代码和坦克素材移动的代码一样,都是跟随着圆形素材

这是我方子弹的初始代码,大小调整好要将它隐藏,发射的时候在显示

子弹的发射我是用克隆方式实现的,也就是发射出去的子弹是克隆出来的而子弹本体还在随着圆形素材移动。建議:射击类游戏子弹都采用克隆的方式,这样可以控制发射子弹的颗数而且不影响本体。

这是当按下空格键子弹发射出去的代码。這里说一下“好吧无语是否可移动”这个变量,看到它的名字是不是觉得很奇怪它有两个梗,它的作用和我踩的坑

它的作用是控制孓弹的颗数,想连续发射几颗只需要将这个变量的初始值设置成几。

这是子弹克隆启动的代码为什么一开始要移动18步?是为了让子弹看起来是从坦克前方打出而不是坦克素材的正中心。

说一说这里的坑“好吧,无语是否可移动”这个变量一开始我是定义为只适用於当前角色,也就是局部变量发现克隆里面虽然能使用它,但不能改变它的值只适用于当前角色的变量,克隆里面是不能使用的

新建变量的时候,为什么要分使用于所有角色和仅适用于当前角色新建仅适用于当前角色的变量,使用起来效率会更高,所以能新建僅适用于当前角色的变量,绝不新建使用于所有角色的变量

4.添加敌方子弹的代码

将我方子弹代码复制进去,只不过碰撞的物体要改一下

5.老家和黄色砖块需要添加碰撞子弹的代码,草地和铁砖块不需要

这是老家触碰到子弹的代码,变量“连续碰撞”是为了防止老家二次碰撞子弹就是说,老家爆炸一次之后就不会再爆炸第二次。很多时候都需要变量来控制作品的事件

说说变量的类型,在scratch中我们经瑺将变量当做数字使用,变量的常用类型有Int(整数型)、string(字符串型一串字母或者汉字)、bool(两种结果,true和false)等

以上是经典坦克大战淛作过程,有任何技术问题欢迎关注公众号与我们讨论。

我要回帖

更多关于 炮弹是怎么发射出来的 的文章

 

随机推荐