私はゲームのレベルのステージを自動的に生成しようとしています。 私は、アレイ(ノート、画面上の「タイル」の量れる16×16)製:アレイからの自動レベル生成
var background:Array=new Array(
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
)
をそして、あなたはおそらく言うことができるように、それぞれ1または0は、(タイルが一つまたは別の場合に対応しますこのシナリオにはそこにあるかどうか)。
私は次の部分でかなり悪いです。
私はhttp://www.flashgametuts.com/tutorials/as3/how-to-create-a-platform-game-in-as3-part-2/の方法を使ってこれを作ることにしました。
var bkgblocks:Sprite=new Sprite();
var bkgblocksw:Number=stage.stageWidth/16
var bkgblocksh:Number=stage.stageHeight/16
//the blocks are 45 pixels wide and tall
var row:int=0;
for(var i:int=0; i<background.length;i++){
if((i+1)/16==int((i+1)/16)){
//if i is divisible by 16
row++
}
if(background[i]==1){
bkgblocks.graphics.beginFill(0x000000)
bkgblocks.graphics.drawRect(I have no idea what to do here ,row*stage.stageHeight/16,bkgblocksw,bkgblocksh);
bkgblocks.graphics.endFill()
addChild(bkgblocks)
}
}
ご覧のとおり、どのようにブロックを配置するかわかりません。
私はy座標をどこに置くべきですか?xはあまりにも混乱しています。
私はこの
i*(45/(row+1))
ような何かを行うことができると思ったが、それは完全に台無しに。これはもっと数学的な質問ですが、申し訳ありませんが、誰かがこれを理解できれば、私はそれを感謝します。