通過按d
,我堅持讓我的精靈字符執行2個動畫幀(link_frame_2,後面跟着link_frame_1)。它只執行一個動畫幀(link_frame_2_face_right.png)。使動畫與Java KeyEvent正常工作
下面的代碼:
import java.awt.Point;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import acm.graphics.GImage;
import acm.graphics.GPoint;
import acm.program.GraphicsProgram;
public class LinkGame extends GraphicsProgram {
public void run(){
setSize(APPLICATION_WIDTH, APPLICATION_HEIGHT);
addLink();
addKeyListeners();
addMouseListeners();
}
private void addLink(){
linkCharacter = new GImage("link sprites/link_frame_1_face_right.png");
add(linkCharacter,link_Location_XCoord,link_Location_YCoord);
}
public void keyPressed(KeyEvent e){
char linkMoveRightKey = e.getKeyChar();
if(linkMoveRightKey == 'd'){
// y should not change so goku moves in a straight line
link_Location_YCoord = 0;
linkCharacter.move(link_Location_XCoord,link_Location_YCoord);
set_Link_Anim_Frame_2_face_left();
}
}
public void set_Link_Anim_Frame_2_face_left(){
linkCharacter.setImage("link sprites/link_frame_2_face_right.png");
}
public void set_Link_Anim_Frame_1_face_left(){
linkCharacter.setImage("link sprites/link_frame_1_face_right.png");
}
private GImage linkCharacter;
private int link_Location_XCoord = 50;
private int link_Location_YCoord = 50 ;
private final int APPLICATION_WIDTH = 600;
private final int APPLICATION_HEIGHT = 600;
}
您的遊戲是否不斷進行,或者只有在按下某個鍵時纔會移動/更改? –