空格为躲闪的射击类单机游戏游戏有哪些 可以携带...

飞行射击小游戏
人气用户推荐
热门游戏榜
新浪玩玩意见反馈
欢迎使用新浪玩玩并提出宝贵建议。请提交玩玩意见反馈。
Copyright & 1996 - 2015 SINA Corporation, All Rights Reserved
北京市通信公司提供网络带宽狂暴的病毒战士
食人魔的战争
帝国勇士中文版
勇闯僵尸城无敌版
狙击僵尸战2
异形星球大战2
反恐特警出击
光头强射气球
神奇宝贝捉宠达人
王牌轰炸机2升级版
梦中小骑士
勇闯僵尸城
暴打保龄球球瓶怪
TH穿越火线1.4
非玩不可的射击游戏
登录7k7k发现更多乐趣
7K7K网页游戏
7K7K儿童游戏
法律顾问:北京市诺恒律师事务所
京公网安备
游戏作品版权归原作者享有,如无意之中侵犯了您的版权,请您按照来信告知,本网站将应您的要求删除。
7k7k小游戏温馨提示:适度游戏娱乐,沉迷游戏伤身,合理安排时间,享受快乐生活……温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
解释:给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帧时,就通知它的父容器把它从屏幕上移除。
1、首先打开Flash CS4 (CS3、CS4或CS5没什么大的区别)新建项目,按确定。打开项目面板。图:新建项目
2、 点击右边的第一个三角按钮(项目),在下拉菜单中选"新建项目"。在弹出新建项目面板项目名称:填入项目名称。在根文件夹:项中点击右边的浏览按钮,浏览 到准备存放项目的目录,按确定。在ActionScript版本:选ActionScript 3.0 。单击"创建项目"按钮,这样项目就建好了。图:项目面板
3、把AirRaid.fla文件复制到项目文件夹下(省去
界面)。点击下面的"创建类"
,在弹出的创建类面板类:的文本框中填入文件名:AirRaid 单击创建类按钮。这样类就创建好了并为我们写好了类的框架,我们可以在框架中添加我们的代码了。图:创建类
图:填入类名
图:类的框架
4、编写AirRaid.as类AirRaid.as类:文档类AirRaid类是游戏的控制器,绑定AirRaid.fla 。负责生成界面上的飞机、火炮、子弹。显示得分,子弹的剩余数量。注册了键盘按下,释放侦听器,接收用户的键盘操作。注册了进入帧事件侦听器,进行碰撞检 测。定义一个飞机计时器,随机生成飞机。检测剩余子弹的数目,当子弹数为零时也就是主角死亡了,移除界面上的飞机,火炮,跳转到重玩按钮。 &
package {import flash.display.MovieC;import flash.display.SimpleBimport flash.events.KeyboardEimport flash.utils.Timport flash.events.TimerEimport flash.text.TextFimport flash.events.Epublic class AirRaid extends MovieClip {private var aagun:AAG//火炮private var airplanes:A//飞机数组private var bullets:A//子弹数组public var leftArrow, rightArrow:Bprivate var nextPlane:T//不定时生成飞机的计时器private var shotsLeft://得分文本private var shotsHit://子弹数文本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 planesetNextPlane();}// 碰撞检测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();}}}if ((shotsLeft == 0) && (bullets.length == 0)) {endGame();}}// 按下键盘public function keyDownFunction(event:KeyboardEvent) {if (event.keyCode == 37) {leftArrow =} else if (event.keyCode == 39) {rightArrow =} else if (event.keyCode == 32) {fireBullet();}}// 释放键盘public function keyUpFunction(event:KeyboardEvent) {if (event.keyCode == 37) {leftArrow =} else if (event.keyCode == 39) {rightArrow =}}// 生成新的子弹public function fireBullet() {if (shotsLeft &= 0)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);}}}// 获取数组的一个子弹public function removeBullet(bullet:Bullet) {for(var i in bullets) {if (bullets[i] == bullet) {bullets.splice(i,1);}}}// 游戏结束,移除界面上的东西。public function endGame() {// 移除飞机for(var i:int=airplanes.length-1;i&=0;i--) {airplanes[i].deletePlane();}airplanes =aagun.deleteGun();aagun =// 移除侦听器stage.removeEventListener(KeyboardEvent.KEY_DOWN,keyDownFunction);stage.removeEventListener(KeyboardEvent.KEY_UP,keyUpFunction);removeEventListener(Event.ENTER_FRAME,checkForHits);nextPlane.stop();nextPlane =gotoAndStop("gameover");}}}
5、编写AAGun.as类
创建类的方法同第3步。首先选中库中的AAGun元件,打开项目面板创建类。在"将类邦定到库元件"前面打勾,点下"使用所选库元件"的单选按钮。图:邦定库元件
AAGun类:邦定库中的炮元件,向左移动向右移动,检测边界,自动消毁。
package {import flash.display.*;import flash.events.*;import flash.utils.getTpublic class AAGun extends MovieClip {static const speed:Number = 150.0;private var lastTime: // 控制移动的Timerpublic function AAGun() {// 枪的初始位置this.x = 275;this.y = 340;//运动addEventListener(Event.ENTER_FRAME,moveGun);}public function moveGun(event:Event) {// 得到时差var timePassed:int = getTimer() - lastTlastTime += timeP// 现在的位置var newx = this.x;// 移动到左边if (MovieClip(parent).leftArrow) {newx -= speed*timePassed / 1000;}// 移动到右边if (MovieClip(parent).rightArrow) {newx += speed*timePassed / 1000;}// 检测边界if (newx & 10) newx = 10;if (newx & 540) newx = 540;// 更新位置this.x =}// 移除屏幕上的炮和事件public function deleteGun() {parent.removeChild(this);removeEventListener(Event.ENTER_FRAME,moveGun);}}}
新建文件Airplane.as
Airplane类:邦定库中的飞机元件。随机产生飞机,随机的速度,产生5种飞机样式,检测是否飞出边界,检测被子弹击中。自动毁灭和爆炸效果。
package {import flash.display.MovieCimport flash.events.TimerEimport flash.utils.Timport flash.utils.getTimport flash.events.Epublic class Airplane extends MovieClip {private var dx:N // 飞机的速度、方向private var lastTime: // 控制移动的Timer//左右移动public function Airplane(side:String, speed:Number, altitude:Number) {if (side == "left") {this.x = -50; // start to the leftdx = // fly left to rightthis.scaleX = -1; // reverse} else if (side == "right") {this.x = 600; // start to the rightdx = - // fly right to leftthis.scaleX = 1; // not reverse}this.y = // vertical positionthis.gotoAndStop(Math.floor(Math.random()*5+1));// set up animationaddEventListener(Event.ENTER_FRAME,movePlane);lastTime = getTimer();}//检测边界public function movePlane(event:Event) {// get time passedvar timePassed:int = getTimer()-lastTlastTime += timeP// move planethis.x += dx*timePassed/1000;// check to see if off screenif ((dx & 0) && (x & -50)) {deletePlane();} else if ((dx & 0) && (x & 600)) {deletePlane();}}// 检测碰撞,子弹击中飞机跳转到帧标签"explode"演示爆炸动画。public function planeHit() {removeEventListener(Event.ENTER_FRAME,movePlane);MovieClip(parent).removePlane(this);gotoAndPlay("explode");}// 移除舞台上的飞机和事件public function deletePlane() {removeEventListener(Event.ENTER_FRAME,movePlane);MovieClip(parent).removePlane(this);parent.removeChild(this);}}}
新建文件Bullet.as
Bullet类:邦定库中的子弹元件。控制子弹的飞行方向,检测子弹是否飞出屏幕。
package {import flash.display.MovieCimport flash.events.Eimport flash.utils.getTimport flash.utils.Timport flash.events.TimerEpublic class Bullet extends MovieClip {private var dy:N // 子弹的速度、方向。private var lastTime:public function Bullet(x,y:Number, speed: Number) {// 初始位置this.x =this.y =// 得到速度dy =// 动画lastTime = getTimer();addEventListener(Event.ENTER_FRAME,moveBullet);}public function moveBullet(event:Event) {// 得到时差var timePassed:int = getTimer()-lastTlastTime += timeP// 子弹运动this.y += dy*timePassed/1000;// 子弹越过屏幕的顶端if (this.y & 0) {deleteBullet();}}// 移除舞台的子弹和事件public function deleteBullet() {MovieClip(parent).removeBullet(this);parent.removeChild(this);removeEventListener(Event.ENTER_FRAME,moveBullet);}}}
所有的类文件完成保存后,回到AirRaid.fla场景,按Ctrl+Enter组合键测试,看看你的成果吧!
阅读(777)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'简单小游戏制作:射击类游戏(一)',
blogAbstract:'
解析打飞机游戏的制作过程演示:这款游戏可能大家都玩过。敌机在蓝天上来回飞行,左右箭头键控制火炮在草地上左右移动。按下空格键发射子弹,击中敌机后,敌机爆炸。得分:记录击中的敌机数。剩余子弹:记录子弹的数量。游戏运行过程图:',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:9,
publishTime:8,
permalink:'blog/static/',
commentCount:3,
mainCommentCount:2,
recommendCount:1,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}

我要回帖

更多关于 射击类单机游戏 的文章

 

随机推荐