用As 3做的第一个Flash最简单的小游戏

本文介绍了一个简单的Flash游戏编程实例,游戏中包含一个可左右移动的长方形及从屏幕底部上移的圆形,通过键盘控制长方形躲避圆形以避免游戏结束。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个长方形可以按A或者D左移右移,在游戏开始会监听键盘事件,圆形在舞台下面往上跑,如果长方形碰到圆,游戏结束,就这么简单。看代码myGame.as,你可以新建一个Fla文件,然后以myGame.as为文档类:

package  {
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.display.*;
import flash.events.*;
import flash.text.TextField;
 public class myGame extends MovieClip{
  public const State_init=1;
  public const State_play=2;
  public const State_over=3;
  public var gamestate:uint=0;
  public var success:uint=0;
  public var fail:int=0;
  public var player1:Sprite=new Sprite();
  public var player2:Sprite=new Sprite();
  public function myGame(){
  player1.graphics.beginFill(0xFF0000);
  player1.graphics.drawRect(100,100,20,10);
  player1.graphics.endFill();
  player2.graphics.beginFill(0);
  player2.graphics.drawCircle(200,400,10);
  player2.graphics.endFill();
  stage.addChild(player1);
  stage.addChild(player2);
  //默认会初始化构造函数,添加监听当前的游戏状态
  stage.addEventListener(Event.ENTER_FRAME,gameloop);
  //初始化游戏状态,要不gamestate=0;
  gamestate=State_init;
   // constructor code
  }
  public function gameloop(e:Event):void{
  switch(gamestate) {
   case State_init:
   initGame();
   break;
   case State_play:
   playGame();
   break;
   case State_over:
   gameOver();
   break;
   }
   }
  public function initGame():void{
  stage.addEventListener(KeyboardEvent.KEY_DOWN,action);
        success=0;
  fail=0;
     gamestate=State_play;
    }
  public function action(e:KeyboardEvent):void{
  if(e.keyCode==65){
   trace(e.keyCode);
   player1.x-=2;
   }else if(e.keyCode==68){
   player1.x+=2;
   }
  if(player1.hitTestObject(player2)){
   gameOver();
   trace("you win!");
   }
   }
  public function playGame():void{
   player2.y-=4;
   }
  public function gameOver():void{
   stage.removeEventListener(KeyboardEvent.KEY_DOWN,action);
   gamestate=0;
   trace("game over");
   }

 }
 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值