各位老铁们好,相信很多人对经典坦克大战的Scratch制作流程(分享一些技巧和陷阱)都不是特别的了解,因此呢,今天就来为大家分享下关于经典坦克大战的Scratch制作流程(分享一些技巧和陷阱)以及的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
事实上,你应该画一个交互流程图,尤其是当内容很多的时候。我做开心斗地主的时候,交互很多,所以后期感觉很乱,bug也很多。
本期不是关于欢乐斗地主,而是关于经典坦克大战的流程,制作过程中遇到的问题,以及一些技巧。
我们从最后一张图片开始。由于时间问题,我们创建了一个关卡。如果你们想改进它,只需要在链表中添加砖块的坐标即可。
如果你现在想体验的话,这里是作品的链接。您可以查看源代码并下载资料。
http://kada.study.163.com/project/109083-100517.htm(网页版)
http://kada.study.163.com/h5/project/109083-100517.htm?statisticsSwitch=trueserverTime=1504155474386from=timelineisappinstalled=0(手机版)
有一天,我突然想用Scratch来制作小时候玩过的坦克大战。我打开Scratch 并开始做。
添加场景
需要添加的场景有图中的黄砖、白砖、草地、家乡、坦克(玩家坦克、敌方坦克,不写逻辑的时候是一样的)、隐形子弹。
网上找资料,PS。
1.添加家乡
将舞台场景划分为13*13的正方形。这就是经典坦克战的场景划分。故乡位于底部中部。场景中的坐标为(x:0,y:-165)。将故乡的大小调整为方块的大小根据材质不同,大小设置也不同。对于我的材料,字符的大小设置为80。
2.添加黄砖
这是砖头吗?其实它是由两部分组成
这些材料拼接在一起。为什么要这样做,后面会分析。
如何添加呢?场景中有很多黄色的砖块。需要加那么多材料吗?用过scratch的朋友脑子里闪过两个字,克隆,是的,我们只需要添加一块即可
这种材质进来,然后通过克隆,场景中出现了很多黄砖。
应该克隆多少次,克隆后如何放到相应的位置。这里需要用到数据模块中的列表。创建一个新列表。名字一定要有意义。当你看到这个名字时,你就会知道这个列表的用途。
列表创建完毕,需要将所有黄砖的坐标添加到列表中。添加坐标可以封装在一个方法中,即更多的模块中。创建一个新的功能块并为其命名有意义的名称。创建新的功能块可以使您的代码更加清晰和干净。您还可以右键单击定义模块并对其进行编辑。有选项可以添加一些参数,并且可以重用功能块以减少代码量。
新创建了功能块,并将黄色砖块的坐标添加到列表中。这里我从下往上一一添加列,这样我就可以使用for循环来减少代码量。
这是添加坐标的部分代码(完整代码可以在工作链接中下载)。这里我们谈谈为什么需要创建三个新变量:砖长、砖宽和底部构件坐标。事实上,它们是常数,自始至终都没有改变。那么,它们有什么意义吗?
答案是肯定的,为什么呢?你需要问产品经理。当然,我们现在是这个游戏的产品经理。添加坐标时这三个变量被使用了近一百次。突然,我们发现砖块长度不是36,或者你想让场景中的砖块变小。你只需要改变这三个变量,而不需要下面的数百行代码。
坐标相加后,克隆的数量就知道了,也就是列表的长度。
为了统一管理砖块,我们隐藏本体,克隆场景中的砖块。这里的编程是存储坐标x的列表,动员是存储坐标y的列表。他们是一一对应的。
3.添加白砖
和草
操作与添加黄砖相同。如果以后想要拓展更多的关卡,只需要更改这三个材质中的坐标列表即可。
4.添加水箱
(注:ps素材时,需要将素材的正面改为朝右,因为在游戏中向前移动就是向右移动)
这是我们坦克的位置代码。这里使用了变量,仍然是因为砖块的大小和位置发生了变化,水箱的位置也相应发生了变化。敌方坦克的添加方式与友方坦克相同。
5、添加子弹(我方的和敌方的,一共需要添加4个,注意区分),这里添加一个球材质,然后收缩。该位置是任意的,因为它随坦克移动。
添加代码
1.添加我们的坦克代码
移动步数,上下是砖块的宽度,左右是砖块长度的一半,对应之前添加的黄砖。
添加后,我们就可以控制我们的坦克了。但坦克不能穿过黄砖、白砖、房屋、敌方坦克、边缘。
移动后添加判断,即触摸这些物体时,向后移动。
该代码添加在移动键下方,用于现场调整坦克的方向。代码中的“-90”根据上、下、左、右键的不同而不同。
添加后我们就可以控制坦克驰骋战场了。测试发现,坦克有时会在某些地方卡住而无法通过。因为坦克太大,所以被缩小了。最终问题解决了,但是坦克缩小得看不清了。
这是罐子里的代码。角色可以移动。这是从循环材料中广播的消息。每次按上下左右键,圆形物料移动成功后都会广播此消息。如果重复使用,就会造成资源浪费。
我们的坦克还会与什么相撞?是的,还有敌人的子弹。碰撞后,我们的坦克需要切换成爆炸形态。
这是检测我方坦克是否与敌方子弹相撞的代码。现在不需要添加声音。在制作作品的过程中,先写好基本逻辑,最后添加特效和声音。
2.添加敌方坦克代码
这是敌方坦克随机移动的代码的一部分。事实上,它是一个随机值。它决定了这个值的范围以及在什么范围内执行什么操作。请注意,该值的范围应该更大,以便您可以调整其行为,例如将其向下移动得更多。
不要忘记将敌方坦克碰撞的子弹改为我方子弹,否则敌方坦克可以互相厮杀。想想就很有趣。
3. 添加我们的项目符号代码
移动子弹材料的代码与移动坦克材料的代码相同,都遵循圆形材料。
这是我们项目符号的初始代码。调整大小后,我们需要隐藏它,并在射击时显示它。
我用的是克隆方式来发射子弹,即发射的子弹是克隆的,弹体仍然随着圆形材质一起运动。建议:射击游戏中,子弹被克隆,这样可以在不影响主体的情况下控制发射的子弹数量。
这是按下空格键时发射子弹的代码。我们来谈谈变量“好吧,无语可以移动吗?”看到它的名字你是不是觉得很奇怪呢?它有两个模因,它的功能和我踩过的陷阱。
它的作用是控制子弹的数量。如果你想连续发射几发子弹,只需要把这个变量的初始值设置为几即可。
这是子弹克隆启动的代码。为什么一开始要移动18步?这是为了使子弹看起来是从坦克的前部发射的,而不是坦克材料的中心。
我们来谈谈这里的陷阱。变量“好的,无语可以移动吗?”我最初将其定义为仅适用于当前字符,这是一个局部变量。我发现虽然可以在clone中使用,但是它的值无法改变。仅适用于当前角色且不能在克隆中使用的变量。
当创建一个新变量时,为什么它应该应用于所有角色并且只应用于当前角色?创建仅适用于当前角色的新变量将会更加高效。因此,您可以创建仅适用于当前角色的变量,但绝不能创建适用于所有角色的变量。
4.添加敌人子弹代码
5、故乡和黄砖需要添加碰撞子弹代码,草砖和铁砖不需要添加。
这是老甲碰子弹的代码。变量“连续碰撞”是为了防止老甲与子弹碰撞两次。也就是说,老甲爆炸一次后,就不会再爆炸第二次。很多时候需要变量来控制作品的事件。
我们来谈谈变量的类型。在从头开始,我们经常将变量用作数字。常见的变量类型有Int(整数类型)、string(字符串类型,一串字母或汉字)、bool(两个结果,true和false)等。
以上就是经典坦克大战的制作流程。如果您有任何技术问题,请留言沟通。
用户评论
真的很好!我一直在想学习 Scratch 制作游戏,没想到你把经典的坦克大战讲解得这么详细,重点还提到了小技巧和坑点,这个攻略太棒了!我已经开始尝试模仿你的步骤制作游戏了,到时候肯定会分享给大家我的成果!
有5位网友表示赞同!
刚入了 Scratch 的坑,一直在找教程看。这个讲解很清晰,我特别喜欢你提到“踩过的坑”这部分,确实比单纯的教程更有帮助,至少能提前知道哪些地方需要注意。 感觉一下子就更清晰下一步该怎么做了
有13位网友表示赞同!
感谢分享!想早点把坦克大战制作出来玩啊,这个流程看起来很清晰易懂,虽然没接触过 Scratch,但我试着看了一下你的代码思路,觉得很有意思,准备尝试一下学习。
有15位网友表示赞同!
这部分的动画讲解真的不错 可以更详细一点吗?比如如何实现坦克炮弹爆炸效果这种细节,如果能展示一些更加复杂的场景和交互,就完美了!
有6位网友表示赞同!
我也想制作坦克大战的游戏,但是感觉我的 Scratch 知识还是不够用。希望你能分享一下更高级的技巧,比如如何添加关卡机制、不同坦克的属性等,这样我才能做出更加完整的游戏!
有11位网友表示赞同!
这个教程确实很有帮助,特别是“踩过的坑”部分,避免了我在学习过程中可能遇到的问题。不过,我想了解一下关于不同的坦克模型设计和动作细节,以及如何实现子弹击中效果等等更专业的问题。
有11位网友表示赞同!
我之前也用 Scratch 做过简单的游戏,这个坦克大战的教程感觉比较实用!期待能看到最终成品的展示,这样可以更加直观的理解你的思路和技巧
有17位网友表示赞同!
做坦克大战这种经典类型的游戏确实难度有点高,你这个教程虽然详细,但还是需要有一定的 Scratch 基础才能上手。建议你以后能加入一些基础知识讲解,方便初心者学习。
有10位网友表示赞同!
我一直想试试用 Scratch 制作自己的游戏,这个坦克大战的教程感觉很有吸引力!你的思路很清晰,而且有针对性的介绍了小技巧和坑点,我已经迫不及待的要动手试试了!
有6位网友表示赞同!
这个教程讲解得太棒了!我之前也想过制作坦克大战,但一直没找到合适的资源,你分享的步骤非常清晰易懂,并且重点关注了一些容易出错的地方,真是太感谢啦~
有8位网友表示赞同!
学习Scratch已经一年多了,但是自己动手做的游戏还是比较少。这款坦克大战的流程分享很有想法,希望可以尝试一下!不过感觉你的代码风格有点偏向于“函数式编程”?能否提供更通俗易懂的解释呢?
有11位网友表示赞同!
这个教程讲得真好!我现在就跟着做起来,期待完成之后玩自己的制作的游戏。
有9位网友表示赞同!
我一直在寻找一些经典游戏制作教程,没想到你居然分享了坦克大战,太好了!我已经开始学习你的步骤了,希望可以顺利的完成!
有11位网友表示赞同!
感觉这个教程偏向于实战操作,缺乏更深入的 Scratch 知识讲解。如果能加入更多关于变量、循环、事件等方面的内容,就更加完善了。
有8位网友表示赞同!
游戏做得太好了!我之前用 Scratch 做过一些简单的游戏,但没见过这么完整的坦克大战。你分享的技巧很有帮助,让我觉得学习 Scratch 变得更有方向感了。
有8位网友表示赞同!
其实做游戏的时候,我觉得最重要的不是流程,而是对游戏的创意和设计理念。你的教程比较注重实战部分,希望能多介绍一些游戏设计方面的知识,比如关卡设计、角色属性设定等。
有17位网友表示赞同!
我对坦克大战的游戏机制很感兴趣,希望你可以分享一下如何实现坦克的移动、射击、爆炸、得分等等功能代码细节,这样可以更深入的理解你的设计思路。
有16位网友表示赞同!