玩转树莓派《三》——Scratch
今天大姨妈折磨了一整个白天,稍微好点,现在打开实验楼,看到有个朋友回答了关于ubuntu上面操作SQL 的时候到处数据到txt文件,被批评没有思考问题,或许吧,虽然那个权限我现在想起确实是可读可写的,但是他的一句是否认真思考自己遇到的问题这件事情本身是没有错的,不是急于求成而要追踪本质,怪不得在某一些测试上面我连编程入门的都没有,突然觉得自己的路还有好长好长,而现在的我却企图安于现在,也是Funny。
ok,不多废话,进入今天的主题Scratch,第一次遇到Scratch,是第一次接触树莓派的时候进入配置界面的时候不小心选择开机进入Scratch,导致进入Scratch就出不来了,还好及时quit,当时就是看见一只猫,初步将其定义为一个作图面板,直到第二次听说这是个编程环境;第二次是在一次考试以后,图书馆会议厅邀请了麻省理工的MIT团队来宣讲,当时理解的他们给我们提供了一个可爱的编程环境,普遍适用于青少年等对编程不熟悉的人群,当时自高的我认为这样最多是小孩子游戏而已,但是不能否认他们确实设计了这门语言引起了编程乐趣,大家可以在手机或者平板上面自由设计自己的游戏,是一种类似于积木的可视化编程,那么今天一起来第三次的真正接触这个环境吧。
1、启动Scratch
启动的方式有很多,可以通过菜单方式启动:选择菜单栏“Menu”>"Programming">"Scratch";也可以直接在命令终端输入命令行:scratch。
启动后的界面如下:
将上图大概分为三个区域:左边的积木盒,里面是一些积木形式的脚本语句;中间的脚本编程区域,用来拖拉左边的脚本积木到右边从而完成编程;右边的程序运行区域。
2、创建角色,编辑脚本
选择右边窗口的角色1,然后开始拖拉左边的积木到中间的脚本编辑窗口:
2.1 初始化程序:选择“control”窗口的积木:when "flag" clicked #表示当点击右上方的绿色旗帜的时候启动程序;
2.2 进入循环语句:forever #永久循环,类似于while语句;
2.3 循环内部动作:turn “顺时针” 15 degrees #顺时针旋转15度,这里面的15这个数值可以修改;
2.4 如果不想按照固定的度数旋转,可以选择随机度数旋转:选择“Operators”窗口中的积木:pick random 1 to 10,可以将去改为-10,这样角色将会随机逆时针或者顺 时针的转动;
2.5 移动步伐:选择“Motion”窗口的积木:move 10 steps;
2.6 测试的时候发现,猫咪不听话,很容易跑到舞台外面,因此设定范围:if on edge,bounce #碰到边缘就反弹;
3、运行游戏
点击右上方的绿色红旗开始运行程序,结果猫咪跑起来了,给个截图:
4、来一个更有意思的游戏:星际入侵者游戏
游戏原理:类似于飞机大战,玩家地加农炮对外星飞船进行射击子弹,如果没有射中外星飞船导致飞船与玩家进行相撞,那么游戏结束Game over!
4.1 绘图创建5个角色:cannon、alien_1、alien_2、bullet、gameover
首先删除猫那个角色1,选择角色1右键"delete",然后点击“Paint new sprite”来依次绘制上面5个角色,绘制完后依次在中间窗口重命名角色名字。
角色效果图(大家不要笑话==||)
4.2 为每一个角色创建不同的脚本
外星飞船和加农炮有两种状态:爆炸状态和正常状态,因此需要使用两个脚本表现这两种不同的状态。
外星飞船脚本设计:
原理:当点击运行脚本,切换到正常状态alien,选择起始位置(-134,82),确保是可见的;飞船随机移动;由于舞台上的角色是共同存在的,因此要处理好角色之间的碰撞,当两个外星飞船相遇时需要避免发生爆炸避免重叠,应该各自旋转90度,为了分开他们,需要各自移动10步;如果飞船碰到子弹,飞船将会发生爆炸,此时切换到爆炸状态(blast);爆炸后,隐藏起来,切换到正常的飞船状态,然后等待3秒随机出现的舞台的一个位置。
部分脚本截图如下: ubuntu的图床今天有点抽风,就不上图了。
依次类推,第二个外星飞船的运行脚本也是类似,相同的脚本直接复制“duplicate”即可,然后更改依次初始位置以及角色名称。
加农炮角色脚本设计:
原理:选择一个适当的初始位置;限制为左右方向键盘移动;当遇到外星飞船的时候转换到爆炸状态,并隐藏起来,最后宣布:GameOver!
子弹角色原理:子弹的初始位置是不可见的,方向是向上运动的;当按空格键的时候才会出现在加农炮的位置,并移动10步,当遇到舞台边缘的时候才会消失。
gameover角色原理:初始位置隐藏,当接受到GameOver!信息时出现,游戏终止。
这就是整个游戏设计过程了,话说大家可以设计一下舞台背景,然后增加一点音乐,才是一个客户体验的游戏!
玩转树莓派《三》——Scratch的更多相关文章
- windows下一根数据线玩转树莓派zero(w)
买了个树莓派zero w,想着用一根普通micro数据线达成 供电+ssh+通过usb共享网络+远程桌面 的目标 通过用静态ip免去了用benjour的连接不稳定方法,下面开始细说 需要的硬件: 树莓 ...
- 玩转树莓派 - 修改Raspbian软件源加快软件下载速度
这是 meelo 原创的 玩转树莓派 系列文章 步骤1:登录到Raspbian的命令行界面 步骤2:修改Raspbian的软件源 软件源是Linux系统免费的应用程序安装仓库,很多的应用软件都会这收录 ...
- Excel应该这么玩——5、三种数据:Excel也是系统
Excel最常用的功能就是记录数据,把数据按照行列记录下来.这部分数据是源数据,是业务活动中最原始的流水账,作为后续操作的依据.为了从源数据中得出一定的结论,需要对源数据进行分析得出报表数据. ...
- SQL Server调优系列玩转篇三(利用索引提示(Hint)引导语句最大优化运行)
前言 本篇继续玩转模块的内容,关于索引在SQL Server的位置无须多言,本篇将分析如何利用Hint引导语句充分利用索引进行运行,同样,还是希望扎实掌握前面一系列的内容,才进入本模块的内容分析. 闲 ...
- <<开源硬件创客 15个酷应用玩转树莓派>>
本书共分18章,前3章是本书的基础章节,主要介绍了树莓派的一些基本情况和基本操作,来让读者了解树莓派的前世今生,掌握树莓派基本的使用方法.第4~18章主要介绍15个以树莓派为载体的酷炫应用,大家可以按 ...
- SQL Server 调优系列玩转篇三(利用索引提示(Hint)引导语句最大优化运行)
前言 本篇继续玩转模块的内容,关于索引在SQL Server的位置无须多言,本篇将分析如何利用Hint引导语句充分利用索引进行运行,同样,还是希望扎实掌握前面一系列的内容,才进入本模块的内容分析. 闲 ...
- TOM带你玩充电 篇三:15款5号电池横评及选购建议——南孚金霸王小米宜家耐时品胜一个都逃不了
双鹿电池的几个版本 理论上来说性价比:绿骑士>金骑士>黑骑士>蓝骑士 绿骑士和金骑士都很不错.哪个便宜买哪个. 小米性价比虽然最高,但是超市买不到. 蓝骑士是普通碳性电池,黑骑士是高 ...
- 玩转html5(三)---智能表单(form),使排版更加方便
<!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/h ...
- 【玩转树莓派】使用 sinopia 搭建私有 npm 服务器
简介 使用 sinopia 的好处是,node系的工程师,内部协作时,使用自有 npm 包,会非常方便:另外,sinopia,会缓存已经下载过的包,可以在相当程度上,加速 npm install 相关 ...
随机推荐
- C# 中多态和重载的区别
一.多态性意味着有多重形式. 在面向对象编程范式中,多态性往往表现为"一个接口,多个功能". using System; using System.Collections.Gene ...
- NPOI 设置excel 边框
https://blog.csdn.net/xxs77ch/article/details/50232343
- parseInt/类型转换/字符串
1.pa'rseInt整型 1.1parseInt必须以数字开头的 var topVal = parseInt("28px"); console.log(topVal); 1.2非 ...
- ES5和ES6作用域
ES5和ES6作用域 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- Python面向对象(定义类和创建对象)
day24 http://www.cnblogs.com/wupeiqi/p/4493506.html Python:函数式+面向对象,函数式编程可以做所有事,但是不一定合适. 小明,10岁,男,上山 ...
- AssertionError: View function mapping is overwriting an existing endpoint function: admin.main
刚才给views.py文件添加了一个路由地址: @admin_view.route('/test', methods=["get", "post"]) @log ...
- 修改linux的文件时,如何快速找到要修改的内容
♦ 在linux系统下,找到需要修改的文件.使用cd+目录的命令进行文件所在的目录,使用ls命令查看是否有该文件. ♦ 使用vim+文件名,打开该文件 ♦ 快速在文件中找到需要修改的地方.如我们需要修 ...
- forward与redirect
前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址:后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接.这样,从浏览器的地址栏中可以看到跳转后的链接地址.所以,前者 ...
- D01——C语言基础学PYTHON
C语言基础学习PYTHON——基础学习D01 20180705内容纲要: 1 PYTHON介绍 2 PYTHON变量定义规则 3 PYTHON文件结构 4 PYTHON语句及语法 5 字符编码 6 ...
- 44.oracle表空间的使用
要给下属充分的发挥空间,要允许下属犯错,下属犯错自己能顶下来就顶着,不要盯得让下属觉得“这不是我的事,我只是个小打工的”,团建要放在首位.不可在下属面前“装B”,别人也不傻. Oracle数据库开创性 ...