Flash游戏编程指南.doc_第1页
Flash游戏编程指南.doc_第2页
Flash游戏编程指南.doc_第3页
Flash游戏编程指南.doc_第4页
Flash游戏编程指南.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Flash游戏编程指南/基本游戏框架package import flash.display.MovieClip;import flash.events.Event;import flash.events.MouseEvent;import flash.display.*;import flash.events.*;import .*;public class Game extends MovieClip public static const STATE_INIT:int=10;public static const STATE_PLAY:int=20;public static const STATE_GAME_OVER:int=30;public var gameState:int=0;public var clicks:int=0;public function Game():void addEventListener(Event.ENTER_FRAME,gameLoop);gameState=STATE_INIT;public function gameLoop(e:Event):void switch (gameState) case STATE_INIT :initGame();break;case STATE_PLAY :playGame();break;case STATE_GAME_OVER :gameOver();break;public function initGame():void stage.addEventListener(MouseEvent.CLICK,onMouseClickEvent);clicks=0;gameState=STATE_PLAY;public function onMouseClickEvent(e:MouseEvent):voidclicks+;trace(mouse click number:+clicks);public function playGame():void if (clicks=10) gameState=STATE_GAME_OVER;public function gameOver():void stage.removeEventListener(MouseEvent.CLICK,onMouseClickEvent);gameState=STATE_INIT;trace(game over);/第二个游戏:扎汽球游戏(正版)三个元件:ball=new EnemyImage(), bg=new BackImage(), player=new PlayerImage()package import flash.display.MovieClip;import flash.events.Event;import flash.events.MouseEvent;import flash.display.*;import flash.events.*;import flash.geom.Rectangle;/import flash.media.Sound;import flash.text.*;public class Game02 extends flash.display.MovieClip public static const STATE_INIT:int = 10;public static const STATE_PLAY:int = 20;public static const STATE_END_GAME:int = 30;public var gameState:int = 0;public var score:int = 0;public var chances:int = 0;public var bg:MovieClip;public var enemies:Array;public var player:MovieClip;public var level:Number = 0;public var scoreLabel:TextField = new TextField();public var levelLabel:TextField = new TextField();public var chancesLabel:TextField = new TextField();public var scoreText:TextField = new TextField();public var levelText:TextField = new TextField();public var chancesText:TextField = new TextField();public const SCOREBOARD_Y:Number =380;public function Game02() addEventListener(Event.ENTER_FRAME, gameLoop);bg = new BackImage();addChild(bg);scoreLabel.text = Score:;levelLabel.text = Level:;chancesLabel.text =Misses: ;scoreText.text =0;levelText.text =1;chancesText.text =0;scoreLabel.y = SCOREBOARD_Y;levelLabel.y = SCOREBOARD_Y;chancesLabel.y = SCOREBOARD_Y;scoreText.y = SCOREBOARD_Y;levelText.y = SCOREBOARD_Y;chancesText.y = SCOREBOARD_Y;scoreLabel.x = 5;scoreText.x = 50;chancesLabel.x = 105;chancesText.x = 155;levelLabel.x = 205;levelText.x = 260;addChild(scoreLabel);addChild(levelLabel);addChild(chancesLabel);addChild(scoreText);addChild(levelText);addChild(chancesText);gameState = STATE_INIT;public function gameLoop(e:Event):void switch (gameState) case STATE_INIT :initGame();break;case STATE_PLAY :playGame();break;case STATE_END_GAME :endGame();break;public function initGame():void score = 0;chances = 0;player = new PlayerImage();enemies = new Array();level = 1;levelText.text = level.toString();addChild(player);player.startDrag(true,new Rectangle(0,0,550,400);gameState = STATE_PLAY;public function playGame():void player.rotation += 15;makeEnemies();moveEnemies();testCollisions();testForEnd();public function makeEnemies():void var chance:Number = Math.floor(Math.random() *100);var tempEnemy:MovieClip;if (chance = 0; i-) tempEnemy = enemiesi;tempEnemy.y -= tempEnemy.speed;if (tempEnemy.y = 0; i-) tempEnemy = enemiesi;if (tempEnemy.hitTestObject(player) score+;scoreText.text = score.toString();/sound.play();enemies.splice(i,1);removeChild(tempEnemy);public function testForEnd():void if (chances= 5) gameState = STATE_END_GAME; else if (score level*20) level+;levelText.text = level.toString();public function endGame():void for (var i:int = 0; i = 0; i-) removeEnemy(i);for (i=missiles.length - 1; i = 0; i-) removeMissile(i);removeChild(player);gameState=STATE_START_PLAYER;public function playGame() makeEnemies();moveEnemies();testCollisions();testForEnd();public function makeEnemies() var chance:int=Math.floor(Math.random() * 100);var tempEnemy:MovieClip;if (chance = 0; i-) tempEnemy=enemiesi;tempEnemy.y+= tempEnemy.speed;if (tempEnemy.y 435) removeEnemy(i);var tempMissile:MovieClip;for (i=missiles.length - 1; i = 0; i-) tempMissile=missilesi;tempMissile.y-= tempMissile.speed;if (tempMissile.y = 0; i-) tempExplosion=explosionsi;if (tempExplosion.currentFrame = tempExplosion.totalFrames) removeExplosion(i);public function testCollisions() var tempEnemy:MovieClip;var tempMissile:MovieClip;enemy:for (var i:int=enemies.length - 1; i = 0; i-) tempEnemy=enemiesi;for (var j:int=missiles.length - 1; j = 0; j-) tempMissile=missilesj;if (tempEnemy.hitTestObject(tempMissile) score+;scoreText.text=score.toString();makeExplosion(tempEnemy.x,tempEnemy.y);removeEnemy(i);removeMissile(j);break enemy;for (i=enemies.length - 1; i = 0; i-) tempEnemy=enemiesi;if (tempEnemy.hitTestObject(player) chances-;chancesText.text=chances.toString();makeExplosion(tempEnemy.x,tempEnemy.y);gameState=STATE_REMOVE_PLAYER;public function makeExplosion(ex:Number,ey:Number) var tempExplosion:MovieClip;tempExplosion=new ExplosionImage ;tempExplosion.x=ex;tempExplosion.y=ey;addChild(tempExplosion);explosions.push(tempExplosion);var sound:Sound=new Explode ;sound.play();public function testForEnd() if (chances level * 30) level+;levelText.text=level.toString();public function removeEnemy(idx:int) removeChild(enemiesidx);enemies.splice(idx,1);public function removeMissile(idx:int) removeChild(missilesidx);missiles.splice(idx,1);public function removeExplosion(idx:int) removeChild(explosionsidx);explosions.splice(idx,1);pu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论