scratch案例——俄罗斯方块 -金沙1005

我们观察一下这个程序的特点,也就是比较独特的部分:1:首选我们看这个程序里有哪些角色,前面7个就是7个方块了,不好理解的是detecter这个角色。剩下的角色都好理解。我们一会再去单独谈detecter这个角色。2:就是这个方格背景了,所有的方块都要严格的在这个方格背景里移动,这个看着简单,大家学scratch这么久了,应该知道还是有点难度的,如何做到,我们一会讨论。3:第三个就是每个方块…

大家好,我是你的好朋友思创斯。网站金沙1005首页:https://ispacesoft.com

我们观察一下这个程序的特点,也就是比较独特的部分:1:首选我们看这个程序里有哪些角色,前面7个就是7个方块了,不好理解的是detecter这个角色。剩下的角色都好理解。我们一会再去单独谈detecter这个角色。

在这里插入图片描述

2:就是这个方格背景了,所有的方块都要严格的在这个方格背景里移动,这个看着简单,大家学scratch这么久了,应该知道还是有点难度的,如何做到,我们一会讨论。

在这里插入图片描述
3:第三个就是每个方块的移动,如何保证每个方块落到另一个方块上就会停下来。scratch里面一般是检测碰到角色,和碰到颜色,那么这个程序用的哪个呢?

在这里插入图片描述
4:当一个方块落到下面停下来后,怎么实现这方块就停留在下面,而新的同样的角色还在上面?这个是用什么方法实现呢?

在这里插入图片描述

5:就是当方块把某一层全部铺满的的时候,程序怎么能检测到呢?通过什么来检测呢?这是一个难点,说句实话,cc哥想了多方案,发现最后都没有设计者的构思的简单方便。
在这里插入图片描述

6:当检测到某一层铺满之后,程序怎么实现的消除呢?这也是个难点,因为消除怎么实现呢?而且你还要保证上面的方块全部移下来。消除完之后会有很多方块就不是原来的角色形状了。
在这里插入图片描述

这是cc哥在分析这个程序时所发现的一些技术点,如果我们能自己想出解决的办法,或者能看懂编程者的方法,那么我们自己也就可以写这个程序了。另外一些技术点就比较容易理解,cc哥就不花篇幅讲了,比如玩这个俄罗斯方块,大家都知道角色可以选择,可以有四个方向,是不是大家第一的反应就是用角色旋转来做?而编程者就不是用旋转来做的,而是用造型来处理的。是不是很巧妙?所以当按旋转按钮的时候,程序只要选造型就好了。

在这里插入图片描述
程序解析

在这里插入图片描述
我们先从简单的问题出发,第二个问题,编程者怎么控制这些角色沿着方格来运动的。而且在移动过程中如何检测碰到其他方块?

在这里插入图片描述
通过这个就能看出,其实每一步移动距离都是20,也就是方格的大小也是20。如何检测碰到其他角色呢?我们发现只有一个检测命令,就是检测黑色。如果移动后发现碰到黑色,就退回上一步。

从这里我们可以发现,这个编程其实最复杂的地方(设计程序经常会碰到虽然不难,但是很复杂的情况)就是如何精准的控制位置,和检测多个角色之间的相互碰撞。在检测方面编程者用了一招最简单的方式,通过给每一个方块加上一圈黑色的边,把整个方格区域的四周加上了一圈黑边,这样只需要检测黑色,就可以实现所有复杂的角色之间相互碰撞的问题了。但是这样简单的方式也带来了问题,就是要精准的控制角色的尺寸和位置。下面这个图看出问题来没有?
本来这个木棍方块应该在往下走一格的,但是肯定是碰到了下面黄色方块或橙色的t字方块的边上,导致没有落下来。这就是编程者没有精准的处理好角色的尺寸。这样的问题在消除的时候也会出现。

在这里插入图片描述
通过分析,回答了刚才2和3的问题。
然后我们看一下这几个方块角色的程序,基本上都一样,cc哥只简单讲这个t方块就好了:

在这里插入图片描述
1:当接收到t的消息,也就是说出来一个t方块,那么就往下落好了,程序不复杂,在没有碰到黑色以前(不论是其他角色和边框)一直下落,每次一格。2:如果碰到了,就回退一步,这样可以停留在被碰物体的上方。3:重点来了,当停稳后,图章! 图章命令大家学过了,就是在原地画一个该角色。这就回答了刚才第四个问题,编程者是通过图章命令来让角色停留在原地的。并不是通过克隆。

在这里插入图片描述

这个是用上箭头来进行方块的旋转,就是每按一次切换一个造型,其中在切换时一定要检测一下是否碰到其他角色或边框,如果碰到,就不做旋转。

在这里插入图片描述
这段程序是在程序开始界面里显示一下方块。

在这里插入图片描述

这段程序是在方格的右上角提醒下一个要出现的方块的样子。

在这里插入图片描述

js555888金沙老品牌的版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由思创斯整理,转载请注明出处:https://ispacesoft.com/4905.html

(0)

相关推荐

  • scratch编程小游戏咬指大冒险[通俗易懂]

    scratch编程小游戏咬指大冒险[通俗易懂]咬指大冒险是一款非常好玩的玩具,玩法就是玩家不断按下小动物的牙齿,牙齿中只有一个是危险的,按下后小动物的嘴巴会闭上咬住手指,其余的牙齿都是安全的。今天我们就来用scratch来做一个电子版的咬指大冒险!这里我们选用一个鳄鱼的造型,首先画出鳄鱼的两个造型,一个张嘴和一个闭嘴,张嘴的造型不需要画下牙齿:要画大一点哦!程序:下面是牙齿的造型,一个有三个:牙齿的排列方式是一段弧,可以先排列好后再调整鳄鱼的嘴巴:最后是被咬时血液的程序:注意,这里的自定义模块需要勾选运行时屏幕不刷新,如果不

    2022年12月28日
  • scratch3.0网站(scratch编程教程)

    转载仅供个人学习,原文地址:https://blog.csdn.net/fancy_kevin/article/details/82754322scratch3.0建站指南(一)scratch3.0已经到来scratch3.0的用户界面发生了很大的改变,更便于使用和学习:接下来的内容中我们就讨论一下如何针对scratch3.0进行建站。建站之本地环境准备:1.步骤一:在本地…

  • scratch编程记忆力小游戏[通俗易懂]

    scratch编程记忆力小游戏[通俗易懂]今天我们来做一个非常有意思的小游戏,屏幕上会出现一个不同颜色方块的组成的九宫格,它们会按照不同顺序闪烁,你需要按闪烁的顺序点击它们:是不是非常有趣呢?接下来我们就来开始编程吧!首先我们画出九个角色,每个角色有三个造型,第一个造型可以改变:第一个造型可以改变,其他两个不行。方块一的程序:也就是第一个方块有点复杂了,因为他要进行初始化一类的工作,因此看上去会有点庞大,下面是方块1的其他程序,承担点击顺序对错判断、输赢提示、正确率等等等等,另外,正确率也是方块一独有的程序,在九宫格的正上方,计算

  • scratch教学大纲

    工欲善其事,必先利其器。我们先来学习一个scratch工具,然后再学习游戏开发有关知识。1。scratch安装2。scratch界面介绍3。scratch背景区4。scratch角色区5。角色-造型区6。角色-声音区7。角色-脚本区7.1角色-动作7.2角色-外观7.3角色-事件7.4角色-控制7.5角色-侦测7.6 角色-画笔7….

  • 妙笔生花1.效果图2.步骤1.效果图空白的舞台,我们在舞台中间点击时,会从舞台下面出现一个花茎,又出现花瓣,接着出现花蕊。点击一下,都会在鼠标的位置出现一朵花儿,并且花的颜色和粗细大小不一样。2.步骤首先先将花儿分段,从图中我们可以看出,花儿有三部分构成,根茎,花瓣,花蕊。实现根茎的代码实现花瓣代码花瓣的一片只有1/4圆,所以我们首先先重复执行五次就行了。为什么要旋转十八度?因为重复十次,便是180度,我们这里使1/4圆,重复5次就可以。重复执行2次并且旋转90度,

  • scratch案例——贪吃蛇

    一、角色设置设置两个角色。一个是蛇,分成蛇头和蛇身。蛇的身体由一块一块组成。蝙蝠:蛇的食物,可以挥动翅膀(,也可以飞翔移动)。二、蛇头的制作这是scratch标准角色库中提供的球,有不同颜色的球。我们以这个球为基础,制作蛇头。蛇头造型1:在角色中,使用“变形”,出现出现几个可以拉动的小点点。拉动圆形右边的点,最后形成尖尖的蛇头形状。蛇总要有眼睛,因此使用用粗线点两下,或者用画圆的功…

  • scratch小游戏2048[通俗易懂]

    scratch小游戏2048[通俗易懂]大家好久不见..这段时间太忙一直没有时间码字,让大家久等了,今天给大家带来的是scratch版的2048。这篇推文有点难,大家慢慢看,可以加我微信(cyz20092347)获取源程序。废话不多说,视频见是的,就是这样,几年前很火的小游戏2048,游戏的规则很简单,你需要控制所有方块向同一个方向运动,两个相同数字方块撞在一起之后合并成为他们的和,每次操作之后会随机生成一个2或者4,最终得到一个“2048”的方块就算胜利了。一、流程梳理 需要4*4的格子 开始时会有三个…

    2022年12月26日
  • python是什么python是著名的“龟叔”guidovanrossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。创始人guidovanrossum是bbc出品英剧montypython’sflyingcircus(中文:蒙提·派森的飞行马戏团)的狂热粉丝,因而将自己创造的这门编程语言命名为python。人生苦短,我用python,翻译自”l…

发表回复

您的电子邮箱地址不会被公开。

联系金沙1005

关注“java架构师必看”公众号

回复4,添加站长微信。

附言:ispacesoft.com网而来。

关注微信
网站地图