Java检查玩家ID
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java检查玩家ID相关的知识,希望对你有一定的参考价值。
目前正在开发一个项目,我有一个播放器类,我有一个ID,每次创建一个对象时自动递增,然后我的所有对象都在一个数组列表中(PlayerList)。我正在尝试设置标签的文本到播放器名称,但它只是跳过第一个播放器,然后它不会循环回来我得到一个Java运行时错误。
此代码将所有玩家加载到表中:
public void initialize() {
for (RadioButton button : radios) {
button.setDisable(true);
button.setOpacity(1);
}
loadPlayers();
selectPlayer(0);
}
public void selectPlayer(int count){
for(Player player : PlayerList) {
if(player.getPlayerID() == count) {
Player activePlayer = PlayerList.get(count);
playerName.setVisible(true);
String name = activePlayer.getName();
playerName.setText(name);
System.out.println(count);
System.out.println(activePlayer);
}
}
}
从上面的代码我想循环遍历玩家列表并从计数中拉出玩家,我也有下面的代码按下按钮运行,下面的代码会增加计数或重置计数。
if(count == PlayerList.size()){
count = 0; //reset the count
}else{
count++;
selectPlayer(count);
}
当我运行代码时,它总是拉第二个玩家而不是第一个玩家我不确定出了什么问题,任何帮助都会非常感激。
更新
if (count <= size) {
Player activePlayer = PlayerList.get(count);
playerName.setVisible(true);
String name = activePlayer.getName();
playerName.setText(name);
System.out.println(count);
}else if(count == size){
count=0;
selectPlayer(count);
}
这就是我现在得到的,它可以工作,但当我来到最后一个玩家时,我必须按两次按钮才能循环到开始?
答案
它是第二个玩家,因为你首先增加count
。顺序是这样的:
selectPlayer(count);
count++;
另一答案
我认为当你第一次按下按钮时按下代码(假设count == 0),它就会落入“其他”状态。在“else”块中,你要做的第一件事是递增计数(现在,count == 1)。你的第一个玩家可能有ID = 0,而你的第二个玩家ID = 1。要修复,请切换else块中的两行,以便选择播放器THEN增量计数。
以上是关于Java检查玩家ID的主要内容,如果未能解决你的问题,请参考以下文章