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;
Actionscript3.0 俄罗斯方块源码
最新推荐文章于 2021-05-26 03:33:46 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)