1
イメージは常に描画されていますが、x/y座標は変化しません。この出来事と私はそれのキー入力をチェックx/y値を取得して設定してもキー入力を取得しようとしていますが動作していません
import java.awt.*;
public class GameState extends State {
private Player player;
private int playerX = 1440/2 - 14, playerY = 810/2 - 14;
public GameState(SuperHexagonGame game)
{
super(game);
player = new Player(playerX, playerY);
}
public void tick()
{
player.tick();
}
public Player getPlayer()
{
return player;
}
public void render(Graphics g)
{
g.drawImage(Assets.bg1, 0, 0, null);
player.render(g);
}
}
プレイヤークラス
import java.awt.*;
public class Player extends Creature {
public Player(int x, int y)
{
super(x, y);
}
public void tick()
{
}
public int getX()
{
return x;
}
public int getY()
{
return y;
}
public void setX(int x)
{
this.x = x;
}
public void setY(int y)
{
this.y = y;
}
public void render(Graphics g)
{
System.out.println(y);
g.drawImage(Assets.player1, x, y, null);
}
}
キー入力クラス修正するために行うことができます。イムは、私は、キーを押したときのためのプログラムは、キーボード入力(矢印キー)を取得している知っている75
import java.awt.event.*;
public class KeyInput extends KeyAdapter {
private Player player = new Player(1440/2 - 14, 810/2 - 14);
public void keyPressed(KeyEvent e)
{
int key = e.getKeyCode();
System.out.println(key);
if (key == KeyEvent.VK_UP)
{
//decrement y by 75
player.setY(player.getY() - 75);
}
if (key == KeyEvent.VK_DOWN)
{
//increment y by 75
}
if (key == KeyEvent.VK_LEFT)
{
//decrement x by 75
}
if (key == KeyEvent.VK_RIGHT)
{
//increment x by 75
}
}
}
を差し引い/現在のxy値を取得して追加することによって、それがプレイヤークラスでのxy値を設定するために取得しようコンソールにキーコードを表示しますが、xy値を新しいxy値に設定して移動しません。私はコピー貼り付けの前にそれが働いていることを確認したかったので、上向き矢印キーのコードを実行するだけです。
私はゲッターを使って 'GameState'から' player'を取得し、他の 'player'を置き換えるべきですか? –
私は私の答えを編集しました。 1人のプレイヤーを作成し、それを 'KeyAdapter'に渡します。この方法で、作成したプレーヤーを編集します。 – UDKOX
ありがとう、私は今働くことになった! :)私はこの問題を解決してマークするのが好きですか? –