java初心者ですが・・・
java初心者ですが・・・
こんにちは。
j趣味でプログラミングをしている者です。
以下のサイトを参考にして、
パックマン風のゲームを作っているのですが、
キー入力に対応してうまく画像が動いてくれません。
急に意図しないところに移動してしまいます。
http://www.crew.sfc.keio.ac.jp/~turkey/packman/
このサイトも途中までしかできていなくて、
関数的なものしかできないのですが・・・
このコードの悪い点を教えていただけないでしょうか。
あるいは、お手本を示していただけないでしょうか。
よろしくおねがいします。
public class disppack3 extends Applet
{
int ht, vt;
int new_ht, new_vt;
int kabesize;
Image img;
int[][] Wall = { // 画面のデータが入ります
};
public void init( )
{
setBackground( new Color( 0xaacbef) );
new_ht = 0; new_vt = 0;
ht = 10; vt = 9;
img = getImage( getCodeBase(), "packmanfuu2.jpg");
addKeyListener(
new KeyAdapter( )
{
public void keyPressed( KeyEvent e )
{
switch( e.getKeyCode() )
{
case KeyEvent.VK_RIGHT:
new_vt = vt + 1;
break;
case KeyEvent.VK_LEFT :
new_vt = vt - 1;
break;
case KeyEvent.VK_UP :
new_ht = ht -1;
break;
case KeyEvent.VK_DOWN :
new_ht = ht +1;
break;
default :
break;
}
if( Wall[new_ht][new_vt] == 1 )
{
ht= new_ht;
vt = new_vt;
}
repaint();
}
}
);
}
public void paint( Graphics g )
{
g.setColor( new Color( 0x454656));
for( int i=0;i<18;i++)
{
for( int j=0; j<18; j++)
{
if( Wall[i][j] == 0 )
{
g.fillRect( j * 40+20, i*40 + 20, 40, 40);
}
}
}
g.drawImage( img, vt* 40 + 20, ht*40+20, this );
}
}
お礼
ありがとうございます!自分では情報を見つけられなかったのですが、 BBSに情報があったんですね。 助かりました~