粉丝2146获赞2265

哈喽,大家好,今天给大家带来一些飞机大战的简单制作教程。第一步呢,来绘制一个角色造型,将中心点变大,使用椭圆形 将飞机压住。这里的我方飞机我是选择用一个比较柔和一点的颜色吧,用矩形画出,这画出他的机翼,使用变形工具将他的左翼给拖拽出来,然后复制,粘贴,翻转, 复制,粘贴,缩小。好一个简单的飞机呢模型呢就制作出来,如果大家有更好的创意,也欢迎告诉我,给他起个名 叫做武装飞行, 我方飞机,我方飞机只做一件事情,那就是重复的跟随我们的鼠标主任。 接下来是做第二步炮弹,炮弹呢也非常简单,如果说就就简单的话,在这画一个圆点也是可以的,如果一些同学追求特效的话,那这里我教大家一种简单的闪电的画法, 给他连上,然后呢用全选在这里给他填充一下这个颜色就可以了, 然后将它变小,小到多呢,小到什么样子呢?就把它压到这个中心点上就可以了。然后来写炮弹的代码,当瑞奇贝转机, 重复执行克隆,自己等待一秒,这个秒数,这个秒数控制我们发出炮弹的频率, 当作为克隆体启动时,重复直行。这里需要用到外观的一个显示和隐藏, 运动里还 有一个, 然后我们需要做成一个向上升的效果,上下是一个外坐标,所以我们每次加十可以简单看一下, 如果,那么去侦测碰到舞台边缘, 删除克隆体,嗯,这里为什么要删除克隆体呢?我解释一下,因为在 sprite 中克隆体的就是说他的上限个数是有上限的,上限大概是四百个,四百个。 接下来复制一下我方的 a c 弹马就掉,将造型上下翻转一下,将他 呃敌方飞机,这里可以稍微将他缩小一点颜色,整体的给他换一下。 你好, 类型控制,重复执行,一样都是克隆自己 等待时间,这里的等待时间呢,是控制敌方飞机出现的时间啊, 也是用到一个外观的显示和隐藏本体显示, 克隆体演唱本体演唱克隆体显示 将外侧标增加,这里是增加复制度下降下降。接下来选我们的英国,如果他们侦测太平原伸出克隆体, 如果,那么碰到炮弹 删除克隆体,这里面呢,我可以建立一个叫做游戏分数, 简单一点吧, 这里复制一份复制一份,碰到敌方飞机不要让这个子弹打到了飞机,两次碰到的第一次他们两个互相碰到,第一次就是删除,然后游戏开始的时候将游戏分数设为零,每一次碰到炮弹呢,就将他的游戏分数, 发现这个飞机都是沿着一个方向啊,这里我们来再给再次修改, 给他移动一个坐标左右,坐标的话能给 x 坐标左右,能给他一个二百和富二百。 现在的话, 你发现每可能说每次这个飞机都会移动移动到这里 是随机的问题。 同样的这个代码呢,还没并没有结束,我们小朋友可以自己思考一下,将代码更加的完善一下, 完善一下如果我方飞机碰到了敌方飞机,最终会怎么样,对吧?同样的在这里我们可以建立一个 叫做生命值,也就说我们这个游戏,对吧?生命值最开始的时候我们可以将生命值设为三,每一次那么碰到谁碰到我放飞机的时候我放飞机,如果碰到敌方飞机,这里加一个 如果,那么政策碰到敌方飞机,原谅, 将生命值分开。那么接下来我们应该写一个条件。写一个什么条件呢?当生命值等于零的时候,就是把我们的这个游戏就该停止了。那剩下这部分呢?就交给屏幕前的小朋友自己来完成。本期视频分享。

学生作品展示图形化编程飞机大战极速版左右键移动飞机,按下空格发射子弹,击落一定数量的敌机后会出现 boss, 血量为一百,击落 boss 之后游戏结束。请屏幕前 的你在评论区留言,如果你是老师,本节课的重点会讲什么呢?

那么这节课的话,我们来说一下我们的这个飞机大赛的一个编辑的一个情况,好吧,那么首先来看一下我们这个角色,有我们的背景, 敌机,子弹,还有我们的嗯,飞机胜利和失败的角色,总共是这么几个角色, 我们先从我们的背景的一个就编程设定开始看一次,好吧?编程的话首先重复执行,将外的坐标增加复式,更改一下他外者的坐标,那么这个是什么意思呢? 嗯,我们之前是不是也说过更改他的 s 轴的坐标,指的是使他左右进行一个移动,对他的左右进行一个移动,对吧?那么更改他的 y 是他相对而言在五代区还是对他的上下 进行一个移动,这边的话,我想呈现的是不是一个嗯,飞机向上飞的效果,那么想要飞机向上飞,相对而言我们的背景就要上下移动,是吧?向下移动,那么看一眼啊,我来支持一下这个积木块, 嗯,是不是我们的背景再往下移动,这样看着是我们的就是飞机,他是一个向上飞的一个效果,对吧?好,那么咱们再来看一下下一个这个积木块,当,嗯,刚开始被顶级的时候,重复执行播放某一首音乐, 这个就是给他添加一个稍微刺激一点的背景音。这边的话大家选择一个你们自己喜欢的音乐就好了,老是这边添加他是充当刺激,那你们也可以添加一下其他的歌,都是可以的啊。 背景的话咱们就看到这,这个的话大家就随意发挥,这里的数值大家也可以更改,那么数值越大跑的越快,对吧?我改成负二十看一下是不是越快啊?数字越小他跑的不就越慢吗?我们来看一下负二, 是不是数值越小跑的就越慢,好吧,好,大概一个效果要改成副食。再看一下我们的这个飞机,这个飞机啊, 放大一点,那看一下,我们这边有三个积木块,三个交管程序啊。首先当按下我们向左移动的 之前这个事件,大家也知道,这是控制我们的什么,控制我们的键盘的一个事件,对吧?那么在我们的键盘上按下我们的左箭头,将我们的 x 坐标增加负五,是什么意思啊?那刚刚也说了更改它的左右位置是什么? 是更改还的 x 轴的坐标。那么向左移动是不是要使我们的对话框里这个白框里增加的值是一个负值啊?那么向右移动就是使我们的对话框里的值增加一个正值,是不是?那 所以说这边我想使我们的这个飞机,当我按一下这个左箭头的时候,在我的键盘上按下左箭头的时候,我们的飞机是向左移动的,我们就要给他的这个指天下为负数,是他的 s 坐标增加负五,对吧? 那么按下按一下右键头的时候,再按一次坐标增加正五,是五控制他左右移动的一个程序设定。那么看下这个当自己碰到 敌击的时候,发送广播失败,就是什么时候我失败了,就当我碰到这个敌击,那么是不是代表我失败了,代表我这个飞机被这个敌击给歼灭了,我也失败了,对吧? 好,这个但是大概飞机一个简单的模型,那么咱们再看一下这个我们的敌机啊,敌啊,看下子弹吧,看下子弹, 那么子弹一开始我这边看,大家看一下啊,这是一个隐藏的状态啊,是一个隐藏的状态。 那我这边给他设置了当按下我们的空格键,我想给他设置的是按下空格键,这个磁带就会发出。那这边你也可以不弄下按格键,你也可以说按下,嗯, a 键, c 键, b 键都可以,或者说你,嗯,你也可以弄成,哎 灯 鼠标点击或者是鼠标按下都是可以的啊,这个上面这个随便你呢。老师这边的话,还是用老师的这个 按下空格键。好吧,主要是看一下我们这个键盘。好,当他按下这个空格键的时候,就使我们的子弹移到我们的这个什么飞机的位置,为什么?因为我们是不是要这个子弹从我们的飞机这边向上出发去打出去,对吧?那么 他一到我们的这个飞机的位置的时候,他就可以去显示了,为什么要显示?因为之前我们是不是给大家设置了一个隐藏,对不对?所以已经给他闭上了,所以这个时候他要显示,不显示他没有办法去发出,对吧?你看这个时候也会呈现一个这样的效果,我按一下空格键, 他就会将子弹发出去。好,那重复执行,使到自己碰到敌机, 什么意思啊?重复执行看一下,将 y 的坐标增加五。 y 的坐标增加五是什么意思?刚刚咱们也说过了,是不是一个上下移动, 那左右移动是一个更改它的 x 坐标值,那上下移动是不是更改它的 y 的坐标值啊?刚刚我是想让我们的背景向下移动,所以我们这里面的值是复制,那这个时候我想我希望我们的子弹向上移动, 所以说这个时候我们也增加了值,是一个正指,正指啊,因为你看我们的外坐标越往上就是他,是不是就是指就越大?所以说我希望他往上 命名的值就是要是一个正的啊,相对而言越往下他的值是不是越来越小?所以如果我想让他拿这个物体往下,他的外轴之名增加的就是一个复数啊, 这个要记住,那么重复执行,将外的坐标轴增加一个五,就不是直不停的向上移动, 直到自己碰到什么碰到敌机,那碰到敌机的话,那就是分身到他,对不对?然后进行一个隐藏, 对吧?进行一个隐藏,我就需要哦,这个子弹就碰到他了,那我就不需要他,对不对?我就需要他重新发射了,那就不需要他了,那这边当然我也可以可以跟他 给他更改一下这里面的一个值,比如说五,嗯,七他就会快一点,对不对?你看七他就会快一点,十你就更快了, 对不对?这个大家都可以自己自己设定呢,那至于为什么要隐藏呢?嗯,那隐藏的话,主要是想让他进行一个美观,要不然他就是停停留在屏幕上面也不好看,对不对?我希望他是一个碰到底气他就消失的一个效果,所以我这边需要给大家设置一个隐藏啊。 好,我们再来看一下我们的敌击,敌击啊,那当看当开始被点击的时候重复执行啊。一个大肚子里面包了这么多小框框啊,我们看大肚子里面小框框分别都是什么?将外的坐标增加负五。什么意思啊? 将外的坐标增加负,是不是使我们的这个敌机不停的向下移动?是不是更改他的外轴的坐标值,使他不停的向下移动,所以我这边是增加一个负值,我希望我的敌机不停的向 我们的什么飞机的这个飞机移动,所以我这边给大家增加的是一个复制,那如果自己碰到的下边缘碰到哪里就是碰到这个地方,碰到下面就说明代表他没有没有攻击到这个,没有碰到这个什么?我们的飞机是不是 那么就隐藏,隐藏了之后等待一秒再随机出现一道来看一下这个积木,这个积木我们昨天说过一个差不多的,不过昨天更赶的是他的 y, 但是这个今天更改的就是我们的 x 了。上节课和这节课的这个区别啊,看一下,一到 x 在负三百和三百内随机选一个整数,外轴不变,什么意思?我是不是希望我的飞机在来给大家大家表演一个框框啊?稍 算,我的飞机在这一个框子里随机出现,就是在这里,嗯, 是不是在这个地方出现?在这个地方随机出现,无论是在左边或者在右边,在这个区域内左右很多移动出现,是不是? 所以我需要更改的是他的 s 座是 x 的坐标轴,那你看一下现在现在这个飞机,这个敌机的坐标轴是不是 x 是负五万,是三百五十七。那我想问他左右移动是不是更改还到外轴? xo 跟 handaxo 那个人塞外,他是不是哦呢?是不是向右移动了?那我更改成负一百五十,是不是向左边移动了?那我这边希望他不断的出现,我是不是 要更改他的一个 x 做标准?我想想让他在这个区域的出现,所以他的 x 坐标是不固定的,但是他的外轴坐标一定是固定的,对不对? 难。当,当他移动到这上面的随机一个位置的时候,那么他就显示再继续执行,将未来的坐标走进家户,就继续的往下,对不对?继续的往下走,就再次执行一下这个操作。 主要是要理解一下这个啊,这个跟我们上节课说的是差不多的,只不过换了一个区域,上节课说的是在右边这个区域,这节课说的是在上面这个区域,那个跟感的值是不一样的啊, 大家有的时候就可以根据他这个想要更换的方向来设定他的 s 轴位置和外轴的位置啊,应该这个应该大家都能理解了,如果的话 你觉得还是不太懂,那你就回去自己去设定一下,去感受一下放在这两个,这两个放在这边和放在这边的一个区别,好吧, 好,咱们再看一下一个这个脚本,当自己碰到飞机大战的时候,飞机大战就是这个子弹,飞机大战的这个子弹碰到子弹,然后把这个名字就改为子弹,好吧, 当自己碰到子弹的时候,是变量得分增加一什么意思?就是使我们这个喷射出来,就是喷射啊,发射出来的子弹碰到了我们这个敌击,我们是不是就赢了?就消灭了一台敌击, 那我们就赢了,就是使我们的得分三加一,然后我为什么要隐藏呢?那我的敌机碰到子弹了,是不是 说明我们的敌击被这个子弹给歼灭了?那这个时候我就要使我的这个敌击进行一个隐藏,对吧?进行一个隐藏,那么他重新移到,对吧?移到这上面这个位置,然后显示,然后执行这个动作,是不是? 好,那就是大概的这这一个一个操作就是这个样子啊,这个也是他,他,他消失了之后,他是不是还是要需要需要移动到这个区域,那么移动到这个区域之后,他就可以显示了,那么这边时候他是不是还会执行这里面的这个操作,因为这边是重复执行的,只要他显示了就会执行,是吧? 那咱们来看一眼,稍微的去操作一下,这个玩的不是很好啊, 大概的去玩了一下他,玩一下他啊,大家,大家自己的话,平常平时的时候也可以就是说,嗯, 就玩一下这个游戏,好吧?好,咱们来看一下这个胜利,胜利,当得分 看到没有胜利,当得分大于五十的时候,那这边可不可以给他设置为大于三,大于四都可以,然后我们这个胜利就显示出来, 解释出来,停止全部脚本,解释出来,就这样子删你,是吧?那么失败,当说到我们的广播失败,则停止全部脚本,那广播失败在哪里发送呢?在我们这边看到没有?当自己碰到敌机的时候发送广播失败,这是大概的 一个脚,大概的一个脚本啊,那这个飞机大战一个大概的这个编程程序,这里还有一些不完善,因为这边是针对毒性化一级的, 你们也可以根据这个在这上面再做出一些改片啊,都是可以的啊。好,那咱们就这节课就到这里结束了。嗯,朋友们再见。

从零到一,教你用 python 写一个飞机大战第一集,第一步,我们需要 input prgm 这个小游戏库。第二步,我们需要对 prgm 这个模块进行一个初始化,实现它的 indita 函数。 接下来呢,我们需要在屏幕的中央去开启一个四百八乘以七百的一个窗口,使用 p r game 点 display 点 set mod 这个函数。在接下来我们需要去加载的一张背景图片,用 p r game 的应密值点 logo 加在我们事先准备好的一张背景图片。接下来我们再用窗口的 bleed 方法去绘制这张图片, 这是我们执行 display 点的 update 的方法,对页面进行渲染。我们现在右击运行程序,发现窗口一闪而过,这是为什么呢?关注陈轩小圆,且听下回分解。



几行代码就可以把方块优化为图片,并且还可以添加音效。在这个视频中,我将跟大家一起编程,从零开始用拍粉做一个飞机大赞, 没有变成基础的伙伴,建议先点赞收藏,从主页找一个感兴趣的 spr 的项目来练习。我发布的 spr 中高级教程已经有数万学生在学习了,虽然教程难度比较大,但是含金量也比较高。很多小伙伴 通过跟学这些教程,在提高编程能力的同时,也在当地编程比赛中获得了奖项。掌握 sprite 之后,再来进行拍摄项目的实战会更合适。 当然这个飞机大战难度不大,高年级的同学也可以直接大胆尝试,遇到问题多多思考。上一集我们实现了子弹的射击功能,但是画面还不够 精美,本集我们来引入图片等素材。话不多说,开始编程。首先打开侯老师编程网站,到飞机大战的页面,第零集可以去下载所需要的飞机大战的素材。 下载之后一定记得解压缩存放到你自己的飞机大战程序所在的文件夹当中,这 对于侯老师已经解压。说好了,我们有一个上的文件夹,里面存了各种各样的声音文件,有一个英美节文件夹,里面存了各种各样的图片。 那我们刚开始用不了这么多,这以后呢?在爆炸效果的时候呢,我们会用到很多的图片啊。我们首先实现第一个功能,我们把背景的红这个黑色换成我们的背景图片。为了引入这些文件夹里面图片呢,我们要导入一个 新的库,叫 os。 我们在下面这个地方把我们的几张图片呢都给他引入进来。首先是 background 背景图片怎么引入呢?还是 pure game 里面有个 a mag 的功能漏的加载 里面呢,就可以填你具体要引入哪一张图片了,那因为每一个电脑呢文件夹的路径不一样,那我们在这个地方呢,用一下 os 自带的 pass 功能,它可以获取到你自己的这个程序所在的完整的文件夹的路径。 然后呢,我们把我们接下来要用的子文件夹这个 amyj 给他加进来,这里面第一个 amyj 文件夹里面的 background 点 pnt。 这张图片加载进来之后呢,还 需要有一个捧 wort 的方法,这样的话呢,我们就转化成我们要用的图片对象了。那有了这个,我怎么样让他显示到我们的窗口里面来呢?我们要到我们下方 主程序里面,在这个 feel 的后面填充了画面之后,我们把 screen 有一个不利的函数,他可以呢去更新一下我们的图片。然后呢他还需要填一个参数,就是这张图片的位置,因为我们要铺满整个窗口,所以我们让他从左上角的 零和零开始,我们运行一下,看看效果。好,这里能看到我们背景的图片就已经被换掉了。那接下来呢,我们将飞机以及子弹还有陨石的这个图片呢,都给他引入进来这个地方呢,同样的代码 直接写出来了,只需要把里面的图片的名称换一换,变量的名称改一改就可以了。那怎么让他显示出来呢?我们找到我们的玩家飞机之前呢,我们是用了一个自己画的五十乘四十的绿色的一个长方形来代表飞机,那这里呢我们就要给他替换掉了, 我们直接把这个英美景呢转化成我们 py game 里面的那个图片,但是呢因为原始图片很大,我们就可以通过这个方法呢,把原始的这个图片给他转化成我们想要的大小,五十乘以四十, 下面的这个行呢就可以不需要了,不需要再填充成绿色了,我们运行试验一下,好能看到我们的飞机呢已经显示出来了,但是呢下方呢会有一个黑 色的底部的颜色,这个颜色呢我们可以再给他稍微优化优化,有一个函数 set color key 里面填 black, 它就可以把黑色的这个颜色呢设定成透明,这样的话我们就能看到一个透明的飞机了。好的, 同样的方法,我们再把子弹和石头设置一下,我们找到石头把这个呢可以去掉了,这个地方呢我们直接用若可以美丽就可以,因为这个大小呢是合适的,当然如果你想调整的话也没问题, 我们复制一下这一段,再到子弹里面这个 这就应该是玻璃铁面积,然后设定成透明,我们来实验一下。好的,子弹 没问题。载入声音的功能跟图片呢大同小异,重点是他在一开始的时候呢,需要去处置化一个声音混合器的对象,在这个地方处置化一下, 出示画完了之后呢,我们就可以像这样把他的这个路径呢填写一下了,就可以把声音引入进来。我们把声音呢放在图片之后, 我们首先有一个射击的声音,这里面呢我们就可以去填写一下我们的路径 os, 点 pass, 点 join, 这时候呢他需要从上的文件夹里面去找 shoot。 第二 wav 这个音频文件, 这样的话我们就有了一个射击的音效的对象,同样的呢,我们也可以把爆炸的这个音效呢给它引入进来,但是呢在爆炸这个地方,你仔细看,我们有两个音效,我们想实现一个随机播放一个音效的效果啊,这个地方呢我们可以把它存放到一个列表里面去,跟它有点不一样, 它是一个列表,里面可以存放多个声音,我们把它复制一份,加个逗号,再复制一份,是不是就是两个声音呢?这里面呢我们用不同的文件名零,第一个一,第二个声音,有了 这个声音我们怎么使用呢?首先是这个射击的音效的功能,我们在哪里做呢?肯定是在这个飞机里面有一个竖腿的功能,让他前面的都执行完了之后呢,我给他加上一个 很累播放的意思,这样的话他就可以播放声音了。爆炸的这个效果呢,应该是在我子弹碰撞到陨石之后,对吧?我们之前呢在这个地方有一个碰撞的逻辑,那我们就可以把声音的功能在这个地方来播放,我们在这个地方添加一行 播放声音,因为他有两个音效,我们要随机选择一个,所以我们要用一个随机数的功能,软灯点错一次,他会从这个列表里面随机挑一个音效,然后我们让他很累就可以了,我们来试验一下,运行 好,这样的声音有了,爆炸也有了,仔细听两个是不一样的, 两种音效我们都有了,那背景音乐怎么做呢?背景音乐呢,稍微有点不一样,我们回到引入声音的那一段代码 那个地方去,在这个下面呢,我们把背景音乐加进来,依然是 puy game 点 mixer 点,这时候呢不是丧的了,而是 music 点漏的。把这个音频呢先加载下来,跟上面是一样的路径,加上我的 song 的文件夹,再加上我的 background 点欧基基文件,这是我们的背景声音,他怎么播放呢? 我们在主程序前面,也就是这个地方给他加上一个播放的功能,我们可以把这些呢先搜索起来, 这是我们的三个角色,在这个主程序这个地方,我们可以给他加上银行,有时候都添加完了之后,我开始播放声音啊,这个声音呢就是 py game 点 mixer 点 music, 点 play, 因为是背景声音,它需要呢你去填写一个重复执行几次的这样一个数字,因为我们想让它无限制的重复去播放,所以这个地方我们填一个特殊数字负一,就代表着它会无限的去循环这个音乐。 测验一下,我们发现这个地方呢有一个小问题,我们检查检查,我们看这个暴瘦信息是没有找到这一 音乐的文件,我们仔细查看,发现这个地方少了一个 n, 应该是 background。 重新运行 好的背景音乐就已经有了,但是这个背景音乐呢,稍显音量有点大,我们可以设置一下,以免呢他把子弹射击和与之爆炸的声音给遮盖掉。我们在引入的时候呢,可以去设定一下他的音量。 好,在这个地方我们加上一行 py game, 点 music, 点 set volume, 设定一下他的音量,他可以填一个零到一的小数, 我们填一个小数呢,你运行一下去感受感受,看哪个声音合适。那这个地方呢,我就直接设定成零点三了,我们测验一下。好,你可以 感受感受这个音量,调节成你所需要的这个音量的大小。好的,这一集的视频就先到这里了,目前我们已经实现了基本的游戏功能。下一集呢,我们来优化一下碰撞检测, 并且让语词转动起来。如果你有什么问题或者好的建议的话,欢迎在评论区里留言,记得点赞收藏, goodbye, 下期见!

上期我们给飞机大战添加了游戏背景,今天带大家添加敌方飞机,我们先添加一个角色敌机,让敌机从上面随机位置随机时间段飞下来。小利奇点击以后,隔一段时间敌机就会飞下来,因为 不只有一个敌机,所以要重复执行这些动作。我们让敌机从舞台的最上边一直飞到最下边,那么他最开始的位置是在哪里呢?最上边歪坐标就等于一百八十 x 坐标呢?因为敌机可以出现在最上边的任意位置,所以 ex 坐标就是负两百四十与正二四零之间的随机数。那么多长时间出现一个敌机呢?我们也给他一个随机数,例如说一到三秒出现一个开 制,敌机是隐藏的到这个位置,让他显示出来,当他飞到最下边时在隐藏。那么怎么往下飞呢?就是外坐标增加,我们让他每次增加负五,直到外坐标小于负一百八十八,我们看一下。 啊啊啊,敌机没有隐藏,也没有新的敌机出现,敌机向下飞行,歪坐标没有达到一百八十八,那我们将一八八改为幺八七,再看 一下效果。现在敌机向下飞行的速度是固定的,我们将敌机的速度也设置一个随机数,然后多加几个敌机,复制一下代码,稍微调整一下数据,看一下效果,你学会了吗?