用scratch 制作一个简单小游戏 但是想不到玩什么游戏 有建议吗
发布网友
发布时间:2022-04-23 05:22
我来回答
共4个回答
热心网友
时间:2023-10-16 06:00
“如何让一个角色跟着另一个角色”这个问题
我想了很久。得出的第一个结论是“
延迟执行动作
”
。所以初期的想法是,
在按下方向按键时,第二个角色延迟执行。
初期的脚本如上面的两个图,
设定了全局变量
delay
调整延迟时间,
局部变
量
t
的预期作用是在克隆之后加
1
,以增加延迟时间(其实,还没有确定克隆之
后
t
是初始值还是当前值,后来试过才知道是当前值的)
。
蛇身的脚本中,
在按下方向键后,
延迟了一会儿。
在只有这两个角色的时候,
跟随的效果还是不错的。
但是问题多多,
比如无法适应快速的操作,
特别是后来
增加了克隆模块后,
常常会有部分蛇身,
提前或者延迟了拐弯时间,
以至于蛇身
支离破碎。
第二个想法是,跟随就是“
面向主体移动
”
。直接使用“动作”中“面向
”
这一模块,
免去延迟,
让蛇身与蛇头保持同样的速度,
只在蛇身太接近蛇头的时
候,让蛇身放慢速度再次拉开距离(拐弯时会缩短距离)
。
蛇头
蛇身
食物
同样有局部变量
t
在克隆之后加
1
,不过原来的全局变量
delay
延时,在
这里变成了全局变量
d
距离。
因为无法通过
“面向
”
这一模块跟着前一个蛇身,
所以只能是所有蛇身都跟着蛇头,只是距离不同。
其实,我是蛮喜欢这个效果的,在转弯的时候,蛇身弧线跟着蛇头,看起来
自然一点。但是,同样也有问题:在蛇身增加时,蛇头直线运动时,后面的蛇身
都是歪着平移的,整体看起来像是在水上漂,而不是爬;另外,可以想象当蛇身
数量增加到一定的时候,最后一截蛇身到蛇头的距离超过了舞台的宽度一半时,
就会出现各种重叠。如果能让后一段蛇身跟着前一段的蛇身就好了,哎
~
第三个想法,跟随是“
再一次走过前任走过的路
”
。这样的情况下,首先要
做的就是记录前任走了哪些路。
直线的路,
没什么好记录的,
重点记录的是在哪
里拐弯,
拐向了哪边。
于是这里就用到了链表。
要保存的数据有拐弯时的
X
坐标、
Y
坐标及方向,所以用了三个链表。蛇头在拐弯时写入链表,最后一截蛇身(蛇
尾)在拐弯后删除链表第一项。局部变量
t
(相当于是蛇身的编号)
,及全局变量
tail
(每多一截蛇身就加
1
)来判断是否是蛇尾。
同时为了方便控制,
增加了一个
flag
变量,
这样就可以只用空格键来控制游
戏的开始和结束。
蛇头
在这里尝试了使用新建模块的功能,新建了一个模块用来储存拐弯点的
X
、
Y
坐标及方向。
下载文档到电脑,查找使用更方便
1下载券 656人已下载
下载
还剩6页未读,继续阅读
热心网友
时间:2023-10-16 06:00
这些都可以:超级玛丽、打地鼠、打砖块、切水果、冒险类、植物大战僵尸......都可以
热心网友
时间:2023-10-16 06:01
大鱼吃小鱼吧,挺简单的
热心网友
时间:2023-10-16 06:01
*战类