-1
因此,我正在嘗試在我有玩家類的地方製作桌面遊戲。在這堂課,我想保存不同的東西,比如在棋盤上的位置,金額等。將數據保存在同一類別的單獨對象中
問題是,當我試圖讓兩名球員全線走。它將movePlayer方法中的兩個值相加並向上移動10個空格。
我在這裏錯過了一些明顯的東西嗎?
public class Board extends Component {
private Player playerOne;
private Player playerTwo;
public Board(){
playerOne = new Player();
playerTwo = new Player();
}
g.fillOval(playerOne.getPositionX(), playerOne.getPositionY(), 50, 15); // draw player 1
g.fillOval(playerTwo.getPositionX(), playerTwo.getPositionY(), 15, 50); // draw player 2
}
public void rollDice(){
playerOne.movePlayer(8); // move player1 > 8 spots
playerTwo.movePlayer(2); // move player2 > 2 spots
}
}
movePlayer方法,以及所有與之相關聯:
public static void updatePlayerPos(int x){
if (playerPos > 40){
playerPos = 2;
} else {
playerPos = playerPos + x;
}
}
public static void changePosition(){
if (playerPos < 12){
positionX = positionX - 50;
}else if(playerPos < 22){
positionY = positionY - 50;
} else if (playerPos < 32){
positionX = positionX + 50;
}else if(playerPos < 42){
positionY = positionY + 50;
}
}
public void movePlayer(int dicerolls){
for (int i = 0;i < dicerolls;i++){
updatePlayerPos(1);
changePosition();
}
}
你可以顯示你的movePlayer()的實現嗎? – Ksv3n
Ksven是正確的。我們需要看到Player.movePlayer。這個問題聽起來像是你有可能使用一個靜態變量來包含玩家移動的距離,並在兩個玩家都更新時調用它。 –
你說得對。實例變量是靜態的。/facepalm – MvdBeukel