我正在为 Uni 项目在 AS3 中创建棋盘游戏。我想知道是否有人可以告诉我在舞台上创建 15x15 方格板的最佳方法?我希望能够在方块上添加鼠标悬停效果。此外,当玩家点击棋盘时,他们的计数器将放置在该方格上。
问问题
1244 次
2 回答
3
这是一个非常基本的问题。二维板 = 您将需要使用两个环,一个内环。
var myArrayOfTiles:Array = new Array();
var distanceX:Number = 0;
var distanceY:Number = 0;
for(var i:Number = 0; i < 15; i++) {
myArrayOfTiles[i] = new Array();
for(var j:Number = 0; j < 15; j++) {
myArrayOfTiles[i][j] = new mySquare();
myArrayOfTiles[i][j].x = distanceX;
myArrayOfTiles[i][j].y = distanceY;
distanceX += myArrayOfTiles[i][j].width;
}
distanceX = 0;
distanceY += myArrayOfTiles[i][j].height;
}
这样,您将定位瓷砖和二维数组,您可以在其中访问它们。您可以在创建侦听器后添加侦听器。
编辑: Flash 专业版:
var myArrayOfTiles:Array = [];
var distanceX:Number = 0;
var distanceY:Number = 0;
for(var i:Number = 0; i < 15; i++) {
myArrayOfTiles[i] = new Array();
for(var j:Number = 0; j < 15; j++) {
var mySquare:Symbol1 = new Symbol1();
addChild(mySquare);
myArrayOfTiles[i][j] = mySquare;
myArrayOfTiles[i][j].x = distanceX;
myArrayOfTiles[i][j].y = distanceY;
distanceX += mySquare.width + 1;
}
distanceX = 0;
distanceY += mySquare.height + 1;
}
这应该适用于 FP,我检查了这个。
于 2012-05-08T19:59:51.267 回答
0
您的错误可能是因为您没有使用正确的语法来创建变量。它应该是:
var mySquare:BoardTile = new BoardTile();
此外,您可以在创建板时直接添加 mouseEventListener,以及使图块对鼠标做出反应,就像它们是按钮一样。你这样做:
var myArrayOfTiles:Array = [];
var distanceX:Number = 0;
var distanceY:Number = 0;
for(var i:Number = 0; i < 15; i++) {
myArrayOfTiles[i] = new Array();
for(var j:Number = 0; j < 15; j++) {
var mySquare:Symbol1 = new Symbol1();
mySquare.addEventListener(MouseEvent.CLICK, fnClick); //adding the eventlistener
mySquare.buttonMode = true; //now the cursor changes when you mouse over the square, to indicate you can interact with it
addChild(mySquare);
myArrayOfTiles[i][j] = mySquare;
myArrayOfTiles[i][j].x = distanceX;
myArrayOfTiles[i][j].y = distanceY;
distanceX += mySquare.width + 1;
}
distanceX = 0;
distanceY += mySquare.height + 1;
}
于 2012-05-09T09:54:09.633 回答