0
問題是,如果我按住其中一個箭頭鍵,則會不斷移動。我的意思是,如果我按住左邊,它會移動7個像素,然後稍微機智一些,然後不斷移動。有人可以告訴我如何解決這一問題,因此移動「順利」爲什麼我的運動很粗糙(不光滑)?
代碼--------------------
包遊戲;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
public class GamePlay implements KeyListener{
int shipX = 400;
int shipY = 300;
public int shipSpeed = 7;
public void incShipX(int i) {this.shipX += i;}
public void incShipY(int i) {this.shipY += i;}
Image ship;
File shipFile = new File("C:/Users/Pictures/ship.png");
public GamePlay() {
try {
ship = ImageIO.read(shipFile);
} catch (IOException ex) {
Logger.getLogger(GamePlay.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void drawShip(Graphics g) {
g.drawImage(ship, shipX, shipY, null);
}
@Override
public void keyTyped(KeyEvent ke) {
}
@Override
public void keyPressed(KeyEvent ke) {
if(ke.getKeyCode() == KeyEvent.VK_LEFT) {
incShipX(-shipSpeed);
}
if(ke.getKeyCode() == KeyEvent.VK_RIGHT) {
incShipX(shipSpeed);
}
if(ke.getKeyCode() == KeyEvent.VK_UP) {
incShipY(-shipSpeed);
}
if(ke.getKeyCode() == KeyEvent.VK_DOWN) {
incShipY(shipSpeed);
}
}
@Override
public void keyReleased(KeyEvent ke) {
}
}
我加入的KeyListener到我的畫布---添加(遊戲);
謝謝你,我明白,但只需要解決我將如何做不同 – user1776707