【发布时间】:2017-04-28 06:58:28
【问题描述】:
我对代码非常陌生,目前正在制作我的第一个项目(只是一个简单的游戏),这里是一些代码的快照。上。向下、向左和向右按钮工作得很好,但是 'mouse = new Point(e.getX(), e.getY(), -25);' 行尽管放入了“public Point mouse;”,但似乎没有找到鼠标的坐标。有什么建议吗?
public Rectangle character;
public int charW = 24;
public int charH = 36;
public boolean right = false;
public boolean left = false;
public boolean up = false;
public boolean down = false;
public boolean mouseActive = false;
/**
*
*/
public Point mouse;
public Keying(Display f, Images i){
character = new Rectangle(180, 180, charW, charH);
f.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
if(e.getKeyCode() == KeyEvent.VK_D){
mouseActive = false;
right = true;
character.x += 1;
}
if(e.getKeyCode() == KeyEvent.VK_A){
mouseActive = false;
left = true;
character.x -= 1;
}
if(e.getKeyCode() == KeyEvent.VK_W){
mouseActive = false;
up = true;
character.y -= 1;
}
if(e.getKeyCode() == KeyEvent.VK_S){
mouseActive = false;
down = true;
character.y += 1;
}
if(e.getKeyCode() == KeyEvent.VK_M){
mouseActive = true;
}
}
public void keyReleased(KeyEvent e){
if(e.getKeyCode() == KeyEvent.VK_D){
right = false;
}
if(e.getKeyCode() == KeyEvent.VK_A){
left = false;
}
if(e.getKeyCode() == KeyEvent.VK_W){
up = false;
}
if(e.getKeyCode() == KeyEvent.VK_S){
down = false;
}
}
});
f.addMouseMotionListener(new MouseMotionAdapter() {
public void mouseMoved(MouseEvent e){
mouse = new Point(e.getX(), e.getY(), -25);
if(mouseActive){
character.x = mouse.x;
character.y = mouse.y;
}
repaint();
}
});
}
public void paintComponent(Graphics g){
super.paintComponent(g);
this.setBackground(Color.BLACK);
g.setColor(Color.RED);
g.fillRect(character.x, character.y, character.width, character.height);
if(right){
character.x += 1;
}
if(left){
character.x -= 1;
}
if(up){
character.y -= 1;
}
if(down){
character.y += 1;
}
repaint();
}
【问题讨论】:
标签: java