[MapEditor クラス]
public void eventStart(GameData gdt) {
case 1://総合メニュー if (pushKey==1) {
} if (pushKey==2) { mEditEnd=true; }
if (clickC==1) { //マップチップ配置フィールドでボタンを押したケース if (buttonCheck(0,0,544,544)) { //本来はチップ取得してから任意のチップを入力できるのだが、今回はテスト用に強制的に01を打ち込む。 int nmx=mouseX/32; int nmy=mouseY/32; maptipNumber[nmx+nowmx][nmy+nowmy]="01"; } if (buttonCheck(576,0,32,288)) nowmy--; if (buttonCheck(576,288,32,288)) nowmy++;; if (nowmy<=0) nowmy=0; if (nowmy>=82) nowmy=82; if (buttonCheck(0,576,288,32)) nowmx--; if (buttonCheck(288,576,288,32)) nowmx++;; if (nowmx<=0) nowmx=0; if (nowmx>=82) nowmx=82;
if (buttonCheck(600,500,60,30) ) mEditEnd=true; }
break;
}
}
クリックして動作するイベントを色々追加した。
if (buttonCheck(0,0,544,544)) {
の部分はマップチップ配置画面。
現在のマウス座標に応じてそこのチップを置き換えていく。
本来置き換え用のチップ番号は別枠で取得してくるのだが、
今回は固定番号で動作テストだけ先にやってしまう。
次の章でその設定をできるようにする。
if (buttonCheck(576,0,32,288)) nowmy--;
if (buttonCheck(576,288,32,288)) nowmy++;;
この二つは右端の数字をクリックしたときのリアクション。
上半分の数字は上スクロール。下半分は下にスクロール。
同様に最下段の数値をクリックすると左右にスクロールする。
if (buttonCheck(0,576,288,32)) nowmx--;
if (buttonCheck(288,576,288,32)) nowmx++;;
100までしかチップをおけないように初期設定しているので、0-99の範囲にとどめる。
82+17マスで99。オーバーするとエラーになる。
マップサイズもあとで任意にセットできるようにする。
次はPaint関数の変更点を見ていく。かなり大きく追加した。
public void maptipPaint(Graphics g) {
for (int y=0;y<=17;y++) { for (int x=0;x<=17;x++) { //左上から順にチップの位置を探し、適合した座標を抜き取る。 String tString=maptipNumber[nowmx+x][nowmy+y]; int[] txy=gSet.maptipSearch(tString); int dx=txy[0]*32; int dy=txy[1]*32; //カメラによる修正値を加える int zx=x*32-gData.cameraPos[0]; int zy=y*32-gData.cameraPos[1];
[ARPanel内のmaptipPaint]
public void maptipPaint(Graphics g) {
int mwidth=gData.mapSize[0];
int mheight=gData.mapSize[1];
for (int y=0;y<=mheight;y++) { for (int x=0;x<=mwidth;x++) { //左上から順にチップの位置を探し、適合した座標を抜き取る。 String tString=gData.maptipNumber[x][y]; int[] txy=gSet.maptipSearch(tString); int dx=txy[0]*32; int dy=txy[1]*32; //カメラによる修正値を加える int zx=x*32-gData.cameraPos[0]; int zy=y*32-gData.cameraPos[1];