我们在接球运动中已经学过了。只需要不停循环,检测是否有按键按下。如果左箭头按下,X轴就减少10;如果右箭头按下,X轴就增加10;如果上箭头按下,Y轴就增加10;如果下箭头按下,Y轴就减少10。
首先要找到一个炮弹的图,可以选择球类或者其他物品, 最后我们选择了一个闪电,但要将闪电转一下,让尖尖的头朝上。
然后炮弹往屏幕上放飞行就比较简单了,就是向上移动一定的位置,或者Y轴增加一定的距离。不停循环即可往上飞行。
制作程序的过程,是一个不断测试改进的过程。我们在制作过程中,发现了一些问题,并且逐步解决了。
1. 宇宙飞船的范围确定。 如果不设置范围,那么左右上下会移出屏幕。因此我们后来增加了一个判断,即只有在X轴大于-220时,才继续往左移动,否则就不往左移动了。Y轴类似。这样通过四个箭头的移动,保证宇宙飞船一直都不会超出屏幕,同时上方保留一定的空间。
2. 克隆体一直往上飞行,到顶部以后,炸弹会停留在那边,留下一个尾巴。我们增加了判断。如果碰到边缘,就“删除克隆体”,这样克隆体碰到边缘后就消失了。
3. 播放声音:每次发射炸弹后,系统会播放声音。播放声音不能直接在循环中做,因为那样会做完以后才能继续发射下一个炮弹,影响效果。因此广播一个消息,然后在消息中播放音乐。最后我们选择了一个敲打低音鼓的声音,这样发射炸弹以后,就发出类似爆炸的声音了。
第一步:飞船角色上下左右移动。
1. 加入宇宙飞船角色;选择星空背景。
2. 造型中,将飞船大小调小一点;设置飞船的中央点为中心。
4. 直接重复执行,无限循环
7. 向右,向下和向上,方法类似。
游戏做出来后,小小朋友要来玩。结果她一直都按住箭头,飞船会超出屏幕。为了解决这个问题,我们就增加了边框的判断。
–飞船:上下左右移动–
第二步:克隆炸弹
8. 加入闪电角色。
9. 造型中,将闪电调小一点;设置飞船的中央点为中心。然后转动了一下。
11. 直接重复执行,无限循环
12. 每个循环,都将子弹 “移动”到“飞船”。因为飞船是移动的,所以发射炸弹时,要从飞船位置上发射出来。
13. 增加如果那么的判断,检测空格按键是否被按下。
14. 如果空格键被按下,那么就克隆自己。(这里可以克隆其他角色-例如飞船)。
15. 然后设置:控制>克隆体启动时。执行这个克隆体的脚本。
a. 首先,外观>隐藏自己。 (开始的时候,我们是没有增加隐藏、显示的步骤的。这样炸弹就在飞船上面能够看见。)
b. 然后选择:运动>面向0°方向,即朝上。这里可以改变方向,例如向右发射炸弹等。(可以选择不同的方向,测试效果)
c. 然后外观>显示自己。
d. 重复执行;移动8步。炸弹即往上飞行。(可以改变移动的速度。)
e. 增加判断,如果碰到边缘,那么,删除克隆体。(如果不删除,就留一个尾巴在屏幕上方。)
16. 增加声音:
a. 克隆自己以后,广播消息1;
b. 当收到消息1时
1)演奏乐器设置为18-鼓
2)弹奏鼓声2, 长度为0.25节拍。(要使用广播,否则飞船发射炸弹就要等待声音播放,导致不连续。)
-炸弹:克隆自己、克隆后移动、广播播放声音。
后续改进
1. 打算在上方随机出现另外一个角色,例如鬼怪,鬼怪也可以克隆自己。鬼怪按照随机的方向自上往下运动。(角色随机从上往下运动,在上一球类发射的课程中已经学过)。如果鬼怪碰到子弹,鬼怪则消失,并且播放打中的音乐,最后播放一个炸弹爆炸的效果。
2. 增加计分器,每消灭一个鬼怪,就增加10分,这样可以进行游戏了。
浏览器中需要Flash播放器。
这个游戏,并不是由小孩独自完成。是在家长指导下,由小孩点击操作完成。目的依然是培养兴趣,了解逻辑过程,了解要实现什么功能,使用什么控件,对控件如何操作。
1、const与#define的区别:(const常量在C语言中叫常变量,在C++中叫常量) C++语言可以用const来定义变量,也可以用#define来定义常量。但是前者比后者有更多的优点: (1)const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查。而对于后者只能进行字符替换,不能进行类型安全检查,并且在字符替换时可能会出现错误(边际效应)。 (2)有些集成化的调...
函数的参数 实参(实际参数),实参可以传递任意类型的对象,如图 调用函数时,解析器是不会检查实参的类型 常见问题:TypeError: can only concatenate str (not “int”) to str 重新给形参赋值不会影响其他变量, 如图 形参,形式参数 如图所示,当a是列表时,尝试修改列表中的元素,如果现在的形参执行的是一个对象,当我们通过形参去修...
第三讲 Python的语法 1.几个概念 1.1表达式 1.2语句 程序(program) 函数(function) 2.标识符 2.1关键字 2.2标识符概念 基本数据类型 整数和小数 布尔值和空值 变量 变量的概念 变量的运算 变量在内存中的原理 1.引用变量 2.拷贝 字符串 什么是字符串 转义字符 长字符串 格式化字符串 字符串的其他操作 第三讲作业 **a,b = 6, 8 我想让a=8...
2019独角兽企业重金招聘Python工程师标准>>> 某些时候我需要知道系统是多少位系统已安装相应的软件,譬如docker只能安装在64位系统上,那么怎么查看linux系统是多少位的呢?经过收集整理得到以下几个方法做个记录。 一、getconf LONG_BIT 64位机器,则结果为64,否则输出32 二、uname -a 结果中输出了x86_64,说明该机器是64位的,否则代...
每天五道面试题!只记录答案,不标出源码,有什么不对的地方欢迎评论,共同进步。 1. Spring MVC执行流程 1、用户发送请求到前端控制器DispatherServlet。 2、DispatherServlet收到请求后,调用HandlerMaping处理器映射器。 3、处理器映射器找到具体的处理器(可以通过xml配置、注...
I want rotate a button in 3d view in WPF I google it and found this Link but I want do it in c# behind code how can I convert this XAML storyboard code to c# behind code that when clicked on button ro...
Suppose I have a pivot table that looks like the following: How can I rearrange the columns A, B, C to an arbitrary order, such as B, A, C? This data is being output from a database and read in throug...
I apologize if this has been posted, but I haven't found a solution that works. I have an excel sheet with a lot of data. I want to make the cells in a certain column (column CG) turn purple if the va...