MAGI JAVA -Make a game in Java-
JAVA Game作成講座 007回
歩行アニメをさせる


kouza007 jarファイル



[今回追加したもの]
・PlayerPlatformクラスを修正
歩行カウントを追加。描画時にこれが関係してくる。
もうちょいまとめて色々変更してから分けても良かったが、
どこまで端折っていいのか良く分からないので、
出来る限り細かく分けてファイルをつくっていく。


[PlayerPlatformの変更点]
public int moveCount=0;

publicは便利なのでprivate定義はめったにしない。
どこからでも修正できるリスクはあるが、使う側が把握していればいい。

public void move(GameData gData) {
//これの最後の方にmoveCountの増加を追加。

if (vx!=0 || vy!=0) {
moveCount+=2; //歩いたときにカウント増加させる
if (moveCount>=64) moveCount=0;
}

} //end move

ここで作ったカウンターが実際にアニメーションさせるときに効果を発揮する。
カウンターは2刻みで増やしているが、1にすればゆっくりアニメし、
3以上にすればシャカシャカ切り替わる。


[ARPanel paint関数]
public void paint(Graphics g){

g.setColor(Color.black);
g.fillRect(0, 0, 800, 800);

//g.drawImage(imageShips[muki], x, y, 32, 40, this);
int sx=0;
int sy=0;
int picSize=32;
int oxy[]=gData.pPlatform.getxy();

if (oxy[2]==8) sy=148;
if (oxy[2]==2) sy=0;
if (oxy[2]==4) sy=48;
if (oxy[2]==6) sy=96;
//キャラクターを歩いているようにアニメーションさせる
int a=16;
int pmc=gData.pPlatform.moveCount;
if (pmc>=0 && pmc<=a-1) sx=0; //pmc0-15 左
if (pmc>=a && pmc<=a*2-1) sx=32; //16-31 中
if (pmc>=a*2 && pmc<=a*3-1) sx=64; //32-47 右
if (pmc>=a*3 && pmc<=a*4-1) sx=32; //48-63 中 64カウントで0に戻し、また左パターンへ戻る
g.drawImage(gData.pPlatform.gra,oxy[0],oxy[1]-16,oxy[0]+picSize,oxy[1]+picSize,sx,sy,sx+picSize,sy+picSize+16,this);

} // end paint

moveCountを引っ張ってきてpmcに格納。
その値に応じてアニメパターンを切り替える。
0-64でループさせている。
0-15は左側の絵、16-31は中央の絵、32-47は右。48-63でまた中央
64でゼロに戻って再び左の絵。
こうすることで、右手上げて - 両手下ろして - 左手上げて - 両手下ろして…とアニメがつながる。
RPGツクールのデフォルトの絵が3パターンでアニメしているのでそれに倣っている。


大分普通のゲームの動きに近くなってきた。
次は背景を変更する。
今までは黒一色のRectを敷いていたが、
草原のマップチップに切り替える。

・トップページへ戻る
inserted by FC2 system