用Scratch制作手游的角色方向虚拟控制器/虚拟摇杆的方法+源码

​前面我们介绍了如何在Scratch游戏中添加血条显示(“血量条”:用Scratch制作血量条的方法+源码“血量圈”:用Scratch制作血量圏的方法+源码)

今天我们想想一个游戏还有什么重要的功能需要实现?

在手游中往往需要用拇指来搓屏幕,从而控制角色的移动方向,我们管这个功能叫做手游的“角色方向虚拟控制器”或“虚拟摇杆”。

如果我们想给Scratch游戏添加这样的虚拟控制器,应该怎么办呢?

一般而言,虚拟控制器是固定在左下角的。虽然有少数游戏需要让虚拟控制器变换位置,但今天我们只说固定位置这种情况的做法。

1. 设置角色

我们添加这样的几个角色:游戏角色,摇杆底盘和摇杆中心

游戏角色小猫上,只放上简单的代码,让它读取方向变量的值,调整自己方法前进就可以了。

摇杆底盘上,不必写任何代码。关键在摇杆中心上。

2. 设置摇杆

在编写代码前,一定不能操之过急,立即投入编程工作。需要先思考,摇杆这一功能,需要使用哪些外部信息,自己又可以为别人提供什么信息。

把任何要实现的功能,都看作一个“输入—输出”模型

摇杆的“输入—输出”模型怎么来呢?因为摇杆中心需要时时刻刻向鼠标指针移动,又时时刻刻指挥小猫的移动方向,所以它需要知道鼠标坐标这一外部信息,以及为小猫提供一个方向变量。

又因为我们这里将摇杆底盘和摇杆中心分成了两个角色,那么摇杆底盘对摇杆中心来说,也是外部了。

从整体上,我们将建立“计算底盘到鼠标距离”和“计算方”两个自定义积木,以供主程序使用。在摇杆中心的主程序上,控制只有在鼠标按下,且鼠标到底盘距离小于某一个数值,摇杆中心到鼠标距离大于某一数值时才执行操作。最后一个条件的目的是,防止摇杆中心颤动。

现在就只剩下这两个自定义积木的编写了。

之所以要自己写一个积木计算底盘到鼠标的距离,是因为我们积木工具箱中,只有当前角色到鼠标的距离,而没有另一个角色的:

计算底盘到鼠标距离”涉及勾股定理,用代码块表示为(代码挺长的,请旋转手机屏幕查看):

这个值也可以在摇杆底盘中,用一个变量设为“到鼠标的距离”来得到,时时更新这个变量,再到摇杆中心这边使用。

计算方”是必须要有的,找不到其他迂回解决的方法。根据atan代码块的值和Scratch中方向的匹配情况,可以写出下面的四种情况:

但实际上,一个角度+360后,实际上与原角度所指的方向一样,第一种和第三种是一样的。因此可以简化为:

这样就完成了整个任务。

最后补充一点。大家可能想说,我又何德何能可以把自己做的Scratch放到手机上玩呢?

这点可以参考:如何将scratch游戏打包成APP(https://blog.csdn.net/qiaoxinwei/article/details/105284618)。

参考资料:

1. 用Scratch制作血量条的方法+源码

2. 用Scratch制作血量圏的方法+源码

3. 玩转Scratch,关于并行的小诀窍

4. Scratch编程老师技能测试10题

5.【免费快领】Scratch编程秘籍PDF

— OVER —

一份自家广告,长期有效|咨询&合作


公众号对话框回复「HELP」更多精彩

喜欢就请「分享「点赞「在看」吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值