私はフレックスアプリケーションに取り組んでおり、アプリケーションの一部はグリッドです。アプリは後でゲームエディタになるはずです。
私の問題は次のスクリーンショットで示されています。ここに画像を配置したかったのですが、十分な評判がないようです。 ここにスクリーンショットへのリンクがあります オレンジのような正方形と赤い三角形は関係ありません。
以下のこのコードは、赤い四角のスプライト(DisplayObjectContainer)です。私はflexを使い始めており、そのグリッドを非常に迅速に実行したかったので、コードは乱雑です。
public class Board extends Sprite
{
var board:Array;
public function Board(blockLength:Number)
{
super();
x = 0;
y = 0;
// Setting up two dim array
board = new Array(10);
for (var k:int = 0; k < board.length; k++)
{
board[k] = new Array(10);
}
// Orange-like box
graphics.lineStyle(1, 0xA3A3A3);
graphics.beginFill(0xCCAA00);
graphics.drawRect(x,y,100, 100);
graphics.endFill();
// red blocks
for (var i:int = 0; i < 10; ++i)
{
for(var j:int = 0; j < 10; ++j)
{
var block:Block = new Block(i*blockLength, j*blockLength);
board[i][j] = block;
this.addChild(block);
block.drawBlock(blockLength);
}
}
}
}
赤い四角は次のように定義されています。
public class Block extends Shape
{
public function Block(x:Number, y:Number)
{
super();
this.x = x;
this.y = y;
}
public function drawBlock(length:Number)
{
graphics.lineStyle(1, 0xB3B3B3);
graphics.beginFill(0xFF0000);
graphics.drawRect(x,y,length, length);
graphics.endFill();
}
}
なぜギャップがあるのか、私には本当にわかりません。コードはほとんどなく、非常に明白なものが欠けているように感じます。ボードオブジェクトは、初期化後にステージに追加されます。
赤いブロックの間にギャップがあるのはなぜですか?