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

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

遇到问题给我留言!

相关推荐
寻星探路2 小时前
【深度长文】万字攻克网络原理:从 HTTP 报文解构到 HTTPS 终极加密逻辑
java·开发语言·网络·python·http·ai·https
lly2024064 小时前
Bootstrap 警告框
开发语言
2601_949146534 小时前
C语言语音通知接口接入教程:如何使用C语言直接调用语音预警API
c语言·开发语言
曹牧4 小时前
Spring Boot:如何测试Java Controller中的POST请求?
java·开发语言
KYGALYX4 小时前
服务异步通信
开发语言·后端·微服务·ruby
zmzb01034 小时前
C++课后习题训练记录Day98
开发语言·c++
猫头虎5 小时前
如何排查并解决项目启动时报错Error encountered while processing: java.io.IOException: closed 的问题
java·开发语言·jvm·spring boot·python·开源·maven
YUJIANYUE6 小时前
PHP纹路验证码
开发语言·php
仟濹6 小时前
【Java基础】多态 | 打卡day2
java·开发语言
孞㐑¥6 小时前
算法——BFS
开发语言·c++·经验分享·笔记·算法