我目前在使用我的2D游戏时出现问题。一切都适合我,直到最后。当我尝试移动精灵时,没有任何反应。
如果代替player.setVelY(-5);
我使用player.setY(player.getY - 5);
精灵移动,但为什么setVelX和setVelY不起作用? :/
这是我的KeyInput.java
的一部分@Override
public void keyPressed(KeyEvent e){
int key = e.getKeyCode();
switch(BNeeto.state){
case MENU:
break;
case GAME:
if(key == KeyEvent.VK_W)
player.setVelY(-5);
if(key == KeyEvent.VK_S)
player.setVelX(5);
if(key == KeyEvent.VK_A)
player.setVelY(-5);
if(key == KeyEvent.VK_D)
player.setVelX(5);
break;
case OPTIONS:
break;
case PAUSE:
break;
default:
break;
}
}
Player.java
package bneeto.entity;
import bneeto.gfx.Texture;
import bneeto.gfx.core.CoreObject;
import java.awt.Graphics;
public class Player extends CoreObject{
public Player(int x, int y, int id, Texture tex){
super(x, y, id, tex);
}
@Override
public void tick() {
x += velX;
y += velY;
}
@Override
public void render(Graphics g) {
g.drawImage(tex.blockStone, x, y, null);
}
}
答案 0 :(得分:1)
我猜你永远不会打电话给tick()
。