最近ドット絵の練習に明け暮れていて、中々コーディングが進みません…
ゲームに必要な素材という意味ではどちらも重要ですけどね!
さて、今日は昨日の続きで、マップチップ設定スクリプトの実装例を示してみましょう。
if(qf.searchLabel("MapChipDif")){
temp = qf.readLine();
Image temp_img = null;
int col = 1;
int row = 1;
while(!temp[0].equals("EndDif")){
if(temp[0].equals("loadImage")){
temp_img = loadImage(temp[1]);
col = Integer.parseInt(temp[2]);
row = Integer.parseInt(temp[3]);
}
else if(temp[0].equals("ChipDif")){
if(temp[4].equals("NONE"))
mapchip[Integer.parseInt(temp[1])] =
makeImageChip(temp_img,col,row,Integer.parseInt(temp[3]),Sprite.TRANS_NONE);
else if(temp[4].equals("ROT90"))
mapchip[Integer.parseInt(temp[1])] =
makeImageChip(temp_img,col,row,Integer.parseInt(temp[3]),Sprite.TRANS_ROT90);
}
temp = qf.readLine();
}
}
またもや自分のソースコードを載せるだけで恐縮なのですが…
qf.searchLabel →スクリプトから特定文字列をシークし、次の行に実行位置を移す関数
qf.readLine →スクリプトを改行まで読み込み、半角スペースで区切ってString[]を返す関数
です。
なお、makeImageChip関数はこの間と実装を変えて、元画像から特定部分を切り出して戻り値とする関数にしてあります。
肝心のスクリプトは
MapChipDif
loadImage mapchip1 5 5
ChipDif 0 as 0 NONE
ChipDif 1 as 1 NONE
ChipDif 2 as 1 ROT90
ChipDif 3 as 2 NONE
ChipDif 4 as 2 ROT90
ChipDif 5 as 2 ROT90
ChipDif 6 as 2 ROT90
ChipDif 7 as 3 NONE
EndDif
といった感じです。
実装例を示しただけで解説もロクにしておりませんが、恐らく問題になるところはないと思います…
もしかしたら、明日にでも簡単な解説を加えるかもしれません。
では、今日はこの辺で。