简单小游戏制作射击类游戏二.docx

上传人:b****7 文档编号:11027640 上传时间:2023-02-24 格式:DOCX 页数:22 大小:101.17KB
下载 相关 举报
简单小游戏制作射击类游戏二.docx_第1页
第1页 / 共22页
简单小游戏制作射击类游戏二.docx_第2页
第2页 / 共22页
简单小游戏制作射击类游戏二.docx_第3页
第3页 / 共22页
简单小游戏制作射击类游戏二.docx_第4页
第4页 / 共22页
简单小游戏制作射击类游戏二.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

简单小游戏制作射击类游戏二.docx

《简单小游戏制作射击类游戏二.docx》由会员分享,可在线阅读,更多相关《简单小游戏制作射击类游戏二.docx(22页珍藏版)》请在冰豆网上搜索。

简单小游戏制作射击类游戏二.docx

简单小游戏制作射击类游戏二

第二部分开始类的编写:

1、首先打开FlashCS4(CS3、CS4或CS5没什么大的区别)新建项目,按确定。

打开项目面板。

图:

新建项目

 

2、点击右边的第一个三角按钮(项目),在下拉菜单中选"新建项目"。

在弹出新建项目面板项目名称:

填入项目名称。

在根文件夹:

项中点击右边的浏览按钮,浏览到准备存放项目的目录,按确定。

在ActionScript版本:

选ActionScript3.0。

单击"创建项目"按钮,这样项目就建好了。

图:

项目面板

 

3、把AirRaid.fla文件复制到项目文件夹下(省去制作界面)。

点击下面的"创建类"图标,在弹出的创建类面板类:

的文本框中填入文件名:

AirRaid单击创建类按钮。

这样类就创建好了并为我们写好了类的框架,我们可以在框架中添加我们的代码了。

图:

创建类 

 

图:

填入类名

 

图:

类的框架

 

4、编写AirRaid.as类

AirRaid.as类:

文档类  AirRaid类是游戏的控制器,绑定AirRaid.fla。

负责生成界面上的飞机、火炮、子弹。

显示得分,子弹的剩余数量。

注册了键盘按下,释放侦听器,接收用户的键盘操作。

注册了进入帧事件侦听器,进行碰撞检测。

定义一个飞机计时器,随机生成飞机。

检测剩余子弹的数目,当子弹数为零时也就是主角死亡了,移除界面上的飞机,火炮,跳转到重玩按钮。

package {  

        import flash.display.MovieClip;;  

        import flash.display.SimpleButton;  

        import flash.events.KeyboardEvent;  

        import flash.utils.Timer;  

        import flash.events.TimerEvent;  

        import flash.text.TextField;  

        import flash.events.Event;  

          

        public class AirRaid extends MovieClip {  

                private var aagun:

AAGun;//火炮  

                private var airplanes:

Array;//飞机数组  

                private var bullets:

Array;//子弹数组  

                public var leftArrow, rightArrow:

Boolean;  

                private var nextPlane:

Timer;//不定时生成飞机的计时器  

                private var shotsLeft:

int;//得分文本  

                private var shotsHit:

int;//子弹数文本  

                  

                public function startAirRaid() {  

                        // 初始化得分数和子弹数  

                        shotsLeft = 20;  

                        shotsHit = 0;  

                        showGameScore();  

                          

                        // 生成炮加入到舞台上  

                        aagun = new AAGun();  

                        addChild(aagun);  

                          

                        // 生成飞机、子弹数组  

                        airplanes = new Array();  

                        bullets = new Array();  

                          

                        // 键盘按下、释放事件侦听器  

                        stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownFunction); 

                        stage.addEventListener(KeyboardEvent.KEY_UP,keyUpFunction);  

                          

                        // 进入帧事件侦听器,检测子弹击中飞机的碰撞检测。

  

                        addEventListener(Event.ENTER_FRAME,checkForHits);  

                        // 生成下一架飞机  

                        setNextPlane();  

                }  

                //不定时生成飞机  

                public function setNextPlane() {  

                        //1000毫秒至2000毫秒之间生成一架飞机  

                        nextPlane = new Timer(1000 + Math.random() * 1000,1);  

                        //  

                        nextPlane.addEventListener(TimerEvent.TIMER_COMPLETE,newPlane);  

                        nextPlane.start();  

                }  

                  

                public function newPlane(event:

TimerEvent) {  

                        // 随机的边、速度和高度  

                        if (Math.random() > .5) {  

                                var side:

String = "left";  

                        } else {  

                                side = "right";  

                        }  

                        var altitude:

Number = Math.random()*50+20;  

                        var speed:

Number = Math.random()*150+150;  

                          

                        // 生成飞机  

                        var p:

Airplane = new Airplane(side,speed,altitude);  

                        addChild(p);  

                        airplanes.push(p);  

                          

                        // set time for next plane  

                        setNextPlane();  

                }  

                  

                // 碰撞检测  

                public function checkForHits(event:

Event) {  

                        for(var bulletNum:

int=bullets.length-1;bulletNum>=0;bulletNum--){   

                                for (var airplaneNum:

int=airplanes.length-1;airplaneNum>=0;airplaneNum--) {  

                                        if (bullets[bulletNum].hitTestObject(airplanes[airplaneNum])) { 

                                                airplanes[airplaneNum].planeHit();  

                                                bullets[bulletNum].deleteBullet();  

                                                shotsHit++;  

                                                showGameScore();  

                                                break;  

                                        }  

                                }  

                        }  

                          

                        if ((shotsLeft == 0) && (bullets.length == 0)) {  

                                endGame();  

                        }  

                }  

                  

                // 按下键盘  

                public function keyDownFunction(event:

KeyboardEvent) {  

                        if (event.keyCode == 37) {  

                                leftArrow = true;  

                        } else if (event.keyCode == 39) {  

                                rightArrow = true;  

                        } else if (event.keyCode == 32) {  

                                fireBullet();  

                        }  

                }  

                  

                // 释放键盘  

                public function keyUpFunction(event:

KeyboardEvent) {  

                        if (event.keyCode == 37) {  

                                leftArrow = false;  

                        } else if (event.keyCode == 39) {  

                                rightArrow = false;  

                        }  

                }  

                // 生成新的子弹  

                public function fireBullet() {  

                        if (shotsLeft <= 0) return;  

                        var b:

Bullet = new Bullet(aagun.x,aagun.y,-300);  

                        addChild(b);  

                        bullets.push(b);  

                        shotsLeft--;  

                        showGameScore();  

                }  

                  

                public function showGameScore() {  

                        showScore.text = String("得分:

 "+shotsHit);  

                        showShots.text = String("剩余子弹:

 "+shotsLeft);  

                }  

                  

                // 从数组获取飞机  

                public function removePlane(plane:

Airplane) {  

                        for(var i in airplanes) {  

                                if (airplanes[i] == plane) {  

                                        airplanes.splice(i,1);  

                                        break;  

                                }  

                        }  

                }  

                  

                // 获取数组的一个子弹  

                public function removeBullet(bullet:

Bullet) {  

                        for(var i in bullets) {  

                                if (bullets[i] == bullet) {  

                                        bullets.splice(i,1);  

                                        break;  

                                }  

                        }  

                }  

                  

                // 游戏结束,移除界面上的东西。

  

                public function endGame() {  

                        // 移除飞机  

                        for(var i:

int=airplanes.length-1;i>=0;i--) {  

                                airplanes[i].deletePlane();  

                        }  

                        airplanes = null;  

                          

                        aagun.deleteGun();  

                        aagun = null;  

                        // 移除侦听器  

                        stage.removeEventListener(KeyboardEvent.KEY_DOWN,keyDownFunction); 

                        stage.removeEventListener(KeyboardEvent.KEY_UP,keyUpFunction);  

                        removeEventListener(Event.ENTER_FRAME,checkForHits);  

                          

                        nextPlane.stop();  

                        nextPlane = null;  

                          

                        gotoAndStop("gameover");  

                }  

        }  

}

5、编写AAGun.as类

创建类的方法同第3步。

首先选中库中的AAGun元件,打开项目面板创建类。

在"将类邦定到库元件"前面打勾,点下"使用所选库元件"的单选按钮。

图:

邦定库元件

 

AAGun类:

邦定库中的炮元件,向左移动向右移动,检测边界,自动消毁。

package { 

        import flash.display.*; 

        import flash.events.*; 

        import flash.utils.getTimer; 

         

        public class AAGun extends MovieClip { 

                static const speed:

Number = 150.0; 

                private var lastTime:

int; // 控制移动的Timer 

                 

                public function AAGun() { 

                        // 枪的初始位置 

                        this.x = 275; 

                        this.y = 340; 

                         

                        //运动 

                        addEventListener(Event.ENTER_FRAME,moveGun); 

                } 

                public function moveGun(event:

Event) { 

                        // 得到时差 

                        var timePassed:

int = getTimer() - lastTime; 

                        lastTime += timePassed; 

                         

                        // 现在的位置 

                        var newx = this.x; 

                         

                        // 移动到左边 

                        if (MovieClip(parent).leftArrow) { 

                                newx -= speed*timePassed / 1000; 

                        } 

                         

                        // 移动到右边 

             

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1