玩转树莓派《三》——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!信息时出现,游戏终止。
这就是整个游戏设计过程了,话说大家可以设计一下舞台背景,然后增加一点音乐,才是一个客户体验的游戏!