×

关注微信公众号

免备案网站空间虚拟主机双线空间域名查询PS数码后期
photoshop互助课堂数百G视频教程下载英语培训机构初中英语如何学随时随地聆听大师开讲/课堂
酷素材!视频教程打包下手绘教程抠图教程路径专辑photoshop cs3视频教程
查看: 12387|回复: 22

从简单的开始做起—射击类游戏(一)[本文已收录教程库]

  [复制链接]
发表于 2010-10-20 15:15:48 | 显示全部楼层 |阅读模式


相关教程阅读: 从简单的开始做起—射击类游戏(二)


从简单的开始做起—射击类游戏(一)

解析打飞机游戏的制作过程

演示:



这款游戏可能大家都玩过。敌机在蓝天上来回飞行,左右箭头键控制火炮在草地上左右移动。按下空格键发射子弹,击中敌机后,敌机爆炸。得分:记录击中的敌机数。剩余子弹:记录子弹的数量。

游戏运行过程图:




全部文件及作用图:游戏文件


AirRaid.fla        程序界面及元件
AirRaid.as         文档类 程序的入口。控制整个程序的逻辑顺序,逻辑结构关系。
AAGun.as           绑定库中的火炮的类  控制火炮
AirPlane.as        绑定库中的敌机的类  控制飞机
Bullet.as          绑定库中的子弹的类  控制子弹


UI(界面)部分
AirRaid.fla文件结构

AirRaid.fla文件:是主文件,分为5个图层3帧,帧上有代码,绑定了文档类 AirRaid.as 。图:界面元素

1、背景层:绘制的蓝天、草地、山峦。
2、成绩显示层:"得分:" 动态文本:实例名 showScore "剩余子弹:" 动态文本:实例名 showShots
3、按钮及提示层:第1帧:开始按钮及说明,实例名:startButton。第3帧:重新开始按钮及结束提示,实例名 playAgainButton。
4、代码层:3帧每帧都有代码
5、标签层:第1帧,标签名称:intro 第2帧,标签名称:play 第3帧,标签名称:gameover 。


代码层的每帧代码及解释:

第1帧代码:
import flash.events.MouseEvent;
stop();
startButton.addEventListener(MouseEvent.CLICK,clickStart);
function clickStart(event:MouseEvent) {
        gotoAndStop("play");
}

解释:给startButton注册了鼠标点击事件,用clickStart方法来实现,点击startButton按钮就把影片转到第2帧上游戏的进行界面。

第2帧代码:
stop();
startAirRaid();

解释:调用文档类的startAirRaid方法,执行这个方法,就会生成敌机,火炮,接受用户的键盘操作事件来生成子弹等一系列操作。

第3帧代码:
playAgainButton.addEventListener(MouseEvent.CLICK,clickPlayAgain);
function clickPlayAgain(event:MouseEvent) {
        gotoAndStop("play");
}

解释:给playAgainButton注册了鼠标点击事件,用clickPlayAgain方法实现,点击playAgainButton按钮跳转到第2帧。


AirRaid.fla文件与文档类的绑定:
绑定文档类:AirRaid.as 图:绑定文档类


最后打开库看看库中的元件 图:库元件

AAGun         影片剪辑(炮)
AirPlane      影片剪辑(飞机)
BasicButton   按钮
Bullet        影片剪辑(子弹)


说一下AirPlane影片剪辑 图:飞机剪辑

1-5帧每帧一个飞机图形。第6-9帧爆炸图形,有标签:explode 第10帧有代码。

第10帧代码:
parent.removeChild(this);
stop();

解释:parent 是父容器 this 是自身 removeChild 是移除。这句代码的意思是通知父容器把它从显示界面移除。
      就是说当子弹击中敌机,敌机播放爆炸效果。播放到第10帧时,就通知它的父容器把它从屏幕上移除。


游戏的界面部分全部完成,第二部分开始类的编写。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?[免费注册]

x

评分

参与人数 3 +9 +1 +2 收起 理由
801212 + 1 谢谢您,对我有帮助.
祁连山 + 1 支持原创教程.
sanbos + 8 + 2 多谢教程,幸苦了。

查看全部评分

发表于 2010-10-20 21:51:52 | 显示全部楼层
嘿嘿  我弄个玩玩去
回复 支持 反对

使用道具 举报

发表于 2011-2-24 09:05:50 | 显示全部楼层
不能玩啊
回复 支持 反对

使用道具 举报

发表于 2012-2-25 14:12:25 | 显示全部楼层
有一些代码不懂啊。在AirPlane影片剪辑中第十帧的代码:    parent.removeChild(this);     stop(); 表达什么意思啊?这段代码与文件 Airplane.as 中 Airplane 类中的 deletePlane() 函数(在最后一个)中的parent.removeChild(this);功能上有什么区别吗?是不是AirPlane影片剪辑中第十帧的代码:parent.removeChild(this); 可以不要啊?
回复 支持 反对

使用道具 举报

发表于 2012-11-17 15:07:46 | 显示全部楼层
有源文件就好了,好慢慢研究代码结构
回复 支持 反对

使用道具 举报

发表于 2012-12-7 11:36:21 | 显示全部楼层
太好了
回复 支持 反对

使用道具 举报

发表于 2012-12-26 21:24:00 | 显示全部楼层
太好了 正想学呢
回复 支持 反对

使用道具 举报

发表于 2013-2-2 21:19:11 | 显示全部楼层
蒙勾历_ya! 发表于 2012-12-26 21:24
太好了 正想学呢

这教程有bug
如果你能做出发我看看吧......
回复 支持 反对

使用道具 举报

发表于 2013-2-3 15:29:01 | 显示全部楼层
从简单的开始做起—射击
回复 支持 反对

使用道具 举报

发表于 2013-6-1 11:28:38 | 显示全部楼层
期待源代码啊,新人直接做很难啊,想看看源代码的结构样子啊~
回复 支持 反对

使用道具 举报

发表于 2013-6-19 01:43:04 | 显示全部楼层
哇牛b真心很想学啊
回复 支持 反对

使用道具 举报

发表于 2014-1-10 18:26:16 | 显示全部楼层
楼主,能否把这个飞机游戏的源文件发我一份,1140533625@qq.com,小弟正在学习中
回复 支持 反对

使用道具 举报

发表于 2014-2-18 22:00:54 | 显示全部楼层
想要FLA格式的
回复 支持 反对

使用道具 举报

发表于 2014-4-23 11:54:52 | 显示全部楼层
新手看不懂啊。。。求FLA格式的!!拜托了!    1114790446@qq.com
回复 支持 反对

使用道具 举报

发表于 2015-12-20 14:02:55 | 显示全部楼层
有些图片看不到
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | [免费注册]

本版积分规则