Actionscript3.0 俄罗斯方块源码

package { import com.ui.Block; import com.ui.Shape;  import flash.display.Sprite; import flash.events.KeyboardEvent; import flash.events.TimerEvent; import flash.utils.Timer; [SWF(backgroundColor = "0
摘要由CSDN通过智能技术生成

package {
 import com.ui.Block;
 import com.ui.Shape;
 
 import flash.display.Sprite;
 import flash.events.KeyboardEvent;
 import flash.events.TimerEvent;
 import flash.utils.Timer;
 [SWF(backgroundColor = "0xfffffff", frameRate = "24")]
 /**
  * 俄罗斯方块应用程序
  * 主程序入口
  *
  * **/   
 public class FangKuai extends Sprite{
  
 private const BLOCKWH:uint=15;   //每个矩形的边长
 private const KEY_LEFT:uint=37;   //响应键盘  的值       左
 private const KEY_UP:uint =38;   //上
 private const KEY_RIGHT:uint=39;  //右
 private const KEY_DOWN:uint=40;//下
 
 private var shape:uint = 1;   //形状值。默认为1
 
 private var tempL:int = 0;//方块的左边空白距离
    private var tempR:int = 0;//右边空白距离
    private var tempD:int = 0;//下边空白距离
    private var moveType:String;//存储移动状态
  
 private var timer:Timer;   //计时器
  
 private var tetrisX:int;//Tetris的世界X坐标(不是stage的x)
 private var tetrisY:int;//Tetris的世界y坐标
 
 private var worldArr:Array = new Array();//世界方块数组,由10*20的格子构成世界
 private var tetrisShape:Array;//Tetris的数组(形状)
 private var tetrisBrickArr:Array = [];//所有添加到场景的小格子方块储存到一个数组
 
  public function FangKuai(){//构造
   init();
  }
  
  /*
   *响应键盘事件
   */
  private function keyevent(keyev:KeyboardEvent):void{
   if(keyev.keyCode == KEY_LEFT){
    moveType = "l";
    go( -1, 0);
   }
   if(keyev.keyCode == KEY_RIGHT){
    moveType = "r";
    go( 1, 0);
   }
   if(keyev.keyCode == KEY_DOWN){
    moveType = "d";
    go( 0, 1);
   }
   if(keyev.keyCode == KEY_UP){
    moveType = "ro";
    revolves();
   }
   createStageOfTrtris(); 
  }
   
  /*
  *创建可视化的舞台
  */ 
  private function createStageOfTrtris():void{    
   clearStageOfTrtris();   
   for(var world_x:uint=0;world_x<20;world_x++){
      var clearState:int=0;
    for(var world_y:uint=0;world_y<10;world_y++){
     if(worldArr[world_x][world_y] == 0){  //添加背景方格
      var block:Block = new Block(0xCCCCCC);  //黄
      block.x = world_y * BLOCKWH;
         block.y = world_x * BLOCKWH;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值