第24课 Scratch入门篇:拖拽怪兽碰墙壁

拖拽怪兽碰墙壁

故事背景:

怪兽被困在洞穴里,被激怒的怪兽不停的撞击洞穴,洞穴晃来晃去,感觉要被震塌了!

程序原理:

洞穴的震动其实就是背景的 X、Y 坐标不停的变化,所以这个背景图我们应该设置为角色,而不能是背景,而且这张背景图要稍微大点,否则震动的时候会显示白色。而角色左右移动是跟鼠标点击有关系,难点在于判断角色点击是往左还是往右。

如何判断角色是往左还是往右呢?这里我们设置了 两个参数,分别为鼠标点击的 X 坐标,和间隔 一段时间后鼠标的 X1 坐标,一开始 X1 坐标为 0,当点击左侧的时候,X-X1 应该是负数,应为我们的角色在中间,X1 是负的。点击右侧,X 是正数,X-X1>0。我们让dx = X-X1,那么当 dx>0的时候,是往右移动,dx<0,则往左。那么当间隔一段时间后,X1=X,也就是 dx=0,这个时候我们角色停止移动。

开始编程

1、添加怪兽和洞穴的角色...调整怪兽和洞穴的位置,使其看起来就像怪兽位于洞穴中(洞穴的图片要大于舞台,晃动的时候才不会出现空白)

2、怪兽角色的程序:

  • 添加点击绿旗的积木,点击绿旗的时候让怪兽移动到图层的最上层,并将旋转方式设定为任意旋转
  • 使用重复执行的积木,每次重复执行的时候,判断鼠标是否点击怪兽角色(碰到鼠标和鼠标同时按下发生),如果鼠标正在点击怪兽的时候,将怪兽的位置移动到鼠标的位置。

3、这里我们设置了 两个参数,分别为鼠标点击的 X 坐标,和间隔 一段时间后鼠标的 X1 坐标,一开始 X1 坐标为 0,当点击左侧的时候,X-X1 应该是负数,因为我们的角色在中间,X1 是负的,这个时候角色向左倾斜(面向60度)。点击右侧,X 是正数,X-X1>0。我们让dx = X-X1,那么当 dx>0的时候,是往右移动,dx<0,则往左,角色倾斜向右(面向120度) 。那么当间隔一段时间后,X1=X,也就是 dx=0,这个时候角色回到中心,面向为90度。

完成以后,切换到全屏模式下,使用鼠标拖拉怪兽就可以看到倾斜的效果

4、新增另外一个点击绿旗的积木,放入重复执行,判断鼠标放开怪兽的时候,让怪兽回到舞台的中心点.

5、在新增另一个绿旗被点击,重复执行,判断怪兽彭代边缘,dx不等于0(表示怪兽倾斜,正在被拖拉)。就发送广播信息(角色洞穴接受消息)

6、怪兽角色完成以后,接着编辑洞穴角色:

  • 新增点击小绿旗,绿旗被点击的时候定位到(0,0)
  • 新增接受到碰撞的消息积木
  • 接收到消息以后 通过重复十次,移动,随机数的积木,让洞穴晃动10次
  • 晃动结束以后定位到(0,0)

这节课就到这里,课后多练习下!✌🏻

遇到问题给我留言!

相关推荐
幽络源小助理19 小时前
PHP虚拟商品自动发卡系统源码 – 支持文章付费阅读与自动发货
开发语言·php
故事不长丨19 小时前
C#集合:解锁高效数据管理的秘密武器
开发语言·windows·c#·wpf·集合·winfrom·字典
superman超哥20 小时前
Rust 内部可变性模式:突破借用规则的受控机制
开发语言·后端·rust·rust内部可变性·借用规则·受控机制
豆沙沙包?20 小时前
2026年--Lc329-735. 小行星碰撞(栈)--java版
java·开发语言
weibkreuz20 小时前
收集表单数据@10
开发语言·前端·javascript
liulilittle21 小时前
XDP VNP虚拟以太网关(章节:一)
linux·服务器·开发语言·网络·c++·通信·xdp
我不是8神21 小时前
Qt 知识点全面总结
开发语言·qt
Ralph_Y21 小时前
多重继承与虚继承
开发语言·c++
今晚务必早点睡21 小时前
写一个Python接口:发送支付成功短信
开发语言·python
jghhh0121 小时前
基于C#实现与三菱FX系列PLC串口通信
开发语言·算法·c#·信息与通信