我正在創建一款青蛙式遊戲,並且在讓程序去做我想做的事情方面做得非常好。但是,我開始認爲要完成遊戲,我將不得不使用方式來編寫很多代碼,並且必須以更簡單的方式實現相同的結果。我不是在尋找答案,只需要一些更多的信息。需要青蛙式遊戲幫助
問題1:我可以使用哪些圖像來表示正在移動的圖標或汽車?我目前使用JButtons。問題是難以讓按鈕移動均勻,我想使用24個不同的移動圖標,從我學到的東西到目前爲止,我將不得不爲每個圖標添加一個新的JButton。
問題2:我得到的Jbutton圖標移動的方式是使用計時器延遲,然後使用計數器遞增x值。這在很大程度上是有效的,但是在屏幕上移動圖標有沒有更好的,也許更簡單的方法?
任何提示,教程等非常感謝。
這裏是我創建得到的圖標移動的一類:
public class EnemyJPanel extends JButton {
JButton enem = new JButton();
JButton enem12 = new JButton();
JButton enem13 = new JButton();
JButton enem1 = new JButton("1");
JButton enem2 = new JButton("2");
JButton enem3 = new JButton("3");
JButton enem4 = new JButton("4");
JButton score = new JButton("Score");
JButton enem5 = new JButton("5");
JButton enem6 = new JButton("6");
JButton enem7 = new JButton("7");
JButton enem8 = new JButton("8");
JButton yard = new JButton("50 Yard Line");
int i = 16;
int u = 576;
int d = 16;
int n = 576;
int k = 16;
int l = 16;
int dummyval = 16;
public EnemyJPanel(){
super();
setLayout(null);
enem1.setBounds(16,300,40,55);
enem2.setBounds(16,245,40,55);
enem3.setBounds(16,190,40,55);
enem4.setBounds(16,135,40,55);
score.setBounds(16,80,601,55);
yard.setBounds(16,355,601,55);
enem5.setBounds(16,410,40,55);
enem6.setBounds(16,465,40,55);
enem7.setBounds(16,520,40,55);
enem8.setBounds(16,575,40,55);
enem12.setBounds(16,300,40,55);
enem13.setBounds(16,300,40,55);
add(enem1);
add(enem2);
add(enem3);
add(enem4);
add(score);
}
public void addEnemy(){
enem1.setBounds(16,300,40,55);
enem2.setBounds(16,245,40,55);
enem3.setBounds(16,190,40,55);
enem4.setBounds(16,135,40,55);
score.setBounds(16,80,601,55);
add(enem1);
add(enem2);
add(enem3);
add(enem4);
add(score);
}
public void enemyMovement(){
i++;u--;d++;n--; // increments lateral movement from a timer in
dummyval++; // the dummy value is needed to keep the icons looping
dummyval = dummyval + 2;
enem1.setBounds(i,300,40,55);
i = i + 2;
if (dummyval > 176){
k++; k = k + 2;
enem12.setBounds(k,300,40,55);
}
if (k > 176){
l++;
l = l + 2;
enem13.setBounds(l,300,40,55);
}
enem2.setBounds(u,245,40,55);
enem3.setBounds(d,190,40,55);
enem4.setBounds(n,135,40,55);
enem5.setBounds(i,410,40,55);
enem6.setBounds(u,465,40,55);
enem7.setBounds(d,520,40,55);
enem8.setBounds(n,575,40,55);
if(i > 576){ // resets button
i = 16;
}
if(k > 576){
k = 16;
}
if(u < 16){
u = 576;
}
u = u - 2; // increase lateral speed
if(d == 576) {
d = 16;
}
if(n < 16){
n = 576;
}
n = n - 5; //increases lateral speed
}
}
我試過類似的數組;但是,我無法添加JButton。該方法是否允許我這樣做? – user1566796
只要方法對變量具有[access](http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html)並且不是靜態方法,方法就不會限制變量的賦值(一個關鍵字'static'的方法) – DoubleDouble