RPG01
MAGI JAVA -Make a game in Java- JAVA Game作成講座2 02回 マップエディター作成2
RPGkouza2-02 zipファイル
VIDEO
[起動方法]
1. Java Runtime Environmentをインストールする。
http://java.com/ja/download/
2.ファイルを適当な場所で解凍する。
3.コマンドプロンプトのアイコンが入っているので起動。
4.j 一文字だけ入力して「Enter」。
これでゲームが始まるはずです。
タイトル画面にマップエディタを立ち上げるコマンドを追加した。
立ち上げても黒バックにx,y座標が表示され続けるだけの状態。
Dキーを押すとタイトル画面に戻る。それだけ。
だが、これが全ての始まりになる。
[ボタンを表示、クリックするとリアクション]
マップエディタの第一歩、起動と終了をテストで実装した。
ボタンの位置は仮決め、あとで動かす。
何ができるかというと、ボタンをクリックするとタイトル画面に戻る。それだけ。
極シンプル過ぎる動作なので区切る意味あるんか? と思うが、これからどんどん追加していくので
それの基本形だと考えれば意味はある。
これからマップエディタを作っていくが、やることはこれと同じ。
特定の座標でクリックするとリアクションが返る。
・マップチップを拾い、マップ画面に配置する。
・完成したらセーブしていつでも読み込めるようにする。
・ロードすることで作りかけのマップを呼び出せる。
・さらに当たり判定のブロック配置もこのエディタで出来るようにする。
ここまでできればマップエディタは完成。
その第一歩がボタンのクリック、と言うわけ。
ではmapEditorをどう修正したか見ていく。
[mapEditorクラス]
public void eventStart(GameData gdt) {
gData=gdt;
int pushKey=0;
int cPlus=0;
mouseX=gData.pPlatform.mouseEvDragged[1];
mouseY=gData.pPlatform.mouseEvDragged[2];
click=gData.pPlatform.mouseEvDragged[0];
mouseCX=gData.pPlatform.mouseEv[1];
mouseCY=gData.pPlatform.mouseEv[2];
clickC=gData.pPlatform.mouseEv[0];
//省略
case 1://総合メニュー
if (pushKey==1) {
}
if (pushKey==2) {
mEditEnd=true;
}
if (clickC==1) {
Boolean hit=buttonCheck(600,500,60,30);
if(hit) mEditEnd=true;
}
break;
}
}
clickCというのはマウスをクリックしたときだけ入力される数値。
指定座標でクリックしたらイベントを起こす。
ただこの時点では多分クリックしっぱなしでその座標入ってもイベント起きると思う。
テストしてないから分からないけど…。
Boolean hit=buttonCheck(600,500,60,30);
これはめんどくさい条件入力を簡素化した関数。
これから無数のボタンを配置していくので、そのたびにIf文を書くのはしんどいし
絶対にどこかで書き間違いをする。
x600- 660 以内、y500 -530以内でクリックしたらhit==trueで返す。
x始点、y始点、横幅(width)、縦幅(height)が引数になっている。
もっと切り詰めれば一行でまとめられると思うので次回以降そうするかも。
public Boolean buttonCheck(int bx,int by,int width,int height) {
Boolean hit=false;
if (mouseCX>=bx && mouseCX<=bx+width) {
if (mouseCY>=by && mouseCY<=by+height) {
hit=true;
}
}
return hit;
}
これが実際の処理。特に説明することはない…。
public void paint(Graphics gr) {
g=gr;
int stx=300;
int sty=400;
stx=600;
sty=500;
gSet.rectSet2(gr,stx,sty,60,30,0,0);
gSet.wordDisp_short2(g,"END",stx,sty+20,0);
gSet.wordDisp_short2(g,"(X,Y="+mouseX+","+mouseY+") clickC="+clickC,0,550,0);
}
最後のペイント処理。ボタンの想定位置にrectを配置し、その上に文字を置いている。
ここをクリックすると何か起きますよ、というアピールをしているわけだ。
ボタンは四角ではなく専用の画像を使っても良い。今回は手軽に作れる方法を取った。
今回はここまで。次回はマップ画面にチップを配置するテストを行う。
・トップページへ戻る