2016-05-18 4 views
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値に設定して移動しません。私はコピー貼り付けの前にそれが働いていることを確認したかったので、上向き矢印キーのコードを実行するだけです。

答えて

0

ここには2 Playerがあります。 Player player = new Player(1440/2 - 14, 810/2 - 14);およびplayer = new Player(playerX, playerY);

あなたは1人のプレイヤーを編集していて、もう1人を印刷しています。以下を追加してみてください:

public class KeyInput extends KeyAdapter { 
    private Player player; 
    public KeyInput (Player player){ 
     this.player = player;  
    } 
} 
+0

私はゲッターを使って 'GameState'から' player'を取得し、他の 'player'を置き換えるべきですか? –

+0

私は私の答えを編集しました。 1人のプレイヤーを作成し、それを 'KeyAdapter'に渡します。この方法で、作成したプレーヤーを編集します。 – UDKOX

+0

ありがとう、私は今働くことになった! :)私はこの問題を解決してマークするのが好きですか? –

関連する問題