【发布时间】:2014-09-17 11:55:36
【问题描述】:
我目前的 2d Java 游戏有问题。一切都对我有用,直到最后。当我尝试移动精灵时,没有任何反应。
如果我使用player.setY(player.getY - 5); 而不是player.setVelY(-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);
}
}
【问题讨论】:
-
尝试减少您提供给与您的问题相关的部分的代码 - 这样问题就太长了,而且很难阅读所有这些代码 -大多数人不会做的工作(这会阻止你的问题得到答案)