第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)

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

 遇到问题给我留言!

相关推荐
渡我白衣4 分钟前
Acceptor模块的设计与实现
java·linux·服务器·开发语言·网络·c++·人工智能
沫璃染墨17 分钟前
《从零入门Linux系统篇(二十八):文件篇·一——Linux为什么“万物皆文件”:从C语言文件流到系统调用》
linux·运维·服务器·开发语言·c++·文件
luteres2 小时前
Mybatis+SSM整合笔记
java·开发语言·mybatis
郝学胜-神的一滴2 小时前
《C++11 工程级应用01:告别冗长类型,开启简洁高效编码新时代》深度解读
开发语言·c++·算法·软件开发·系统设计
其实防守也摸鱼2 小时前
推荐一个自动化教育SRC漏洞挖掘系统--AutoHunter
运维·开发语言·人工智能·学习·安全·web安全·自动化
覆东流8 小时前
7.Java数组
java·开发语言·后端
码行山野赴时序归途9 小时前
三道经典数组题:从暴力到最优的算法思维
c语言·开发语言·数据结构·算法·leetcode
lzhdim9 小时前
提高 SQL 语句执行速度的方法
java·开发语言·数据库·sql·oracle
JavaPub-rodert9 小时前
王仕宇在 Go Context 如何解决协程泄漏与超时控制
开发语言·后端·golang·iphone·javapub·王仕宇
ly768910 小时前
JavaScript 从入门到进阶:核心语法、异步编程与工程化实践
开发语言·javascript·ecmascript