com.rs.game.player.Dm.initiative上的java.lang.NullPointerException(Dm.java:27)
我只是不明白为什么它一直指向null。我是一个相当新的程序员。但在这里,我创建了一个骰子类和一个命令类。 我尝试过改变变量和各种各样的东西。我想我只是不知道为什么它指向nullcom.rs.game.player.Dm.initiative上的java.lang.NullPointerException(Dm.java:27),java,arrays,Java,Arrays,我只是不明白为什么它一直指向null。我是一个相当新的程序员。但在这里,我创建了一个骰子类和一个命令类。 我尝试过改变变量和各种各样的东西。我想我只是不知道为什么它指向null package com.rs.game.player; /** * Created by Kevinpro0 on 2/26/2015. */ public class Dice { public int die2; public int die3; public int die4;
package com.rs.game.player;
/**
* Created by Kevinpro0 on 2/26/2015.
*/
public class Dice {
public int die2;
public int die3;
public int die4;
public int die6;
public int die8;
public int die10;
public int die12;
public int die14;
public int die16;
public int die18;
public static int die20;
public void d2() {
die2 = (int)(Math.random()*2) +1;
}
public void d3() {
die3 = (int)(Math.random()*3) +1;
}
public void d4() {
die4 = (int)(Math.random()*4) +1;
}
public void d6() {
die6 = (int)(Math.random()*6) +1;
}
public void d8() {
die8 = (int)(Math.random()*8) +1;
}
public void d10() {
die10 = (int)(Math.random()*10) +1;
}
public void d12() {
die12 = (int)(Math.random()*12) +1;
}
public void d14() {
die14 = (int)(Math.random()*14) +1;
}
public void d16() {
die16 = (int)(Math.random()*16) +1;
}
public void d18() {
die18 = (int)(Math.random()*18) +1;
}
public static int d20() {
die20 = (int)(Math.random()*20) +1;
return die20;
}
}
/*****我现在只使用d20来做这个****/
DM.java
package com.rs.game.player;
import com.rs.game.player.*;
import com.rs.game.World;
import java.util.Arrays;
/**
* Created by Kevinpro0 on 3/1/2015.
*/
public class Dm {
public static Dice init = new Dice();
public static int worldSize = World.getPlayers().size();
public static int[] PlayerInt = new int[worldSize];
//
public static Player player;
public static int initRoll = init.die20;
public static String playersName;
public static int i = 1;
public static void initiative(){
for (i = 1; i < World.getPlayers().size() + 1; i++) {
//Dice = new Dice();
init.d20();
PlayerInt[i] = initRoll;
player.getPackets().sendPanelBoxMessage(Integer.toString(Dice.d20()));
//player.getPackets().sendPanelBoxMessage("Player " + i + " is " + playersName + " and initiative roll: " + Integer.toString(initRoll));
}
}
}
Commands.java
case "init":
case "initiative":
Dm dmaster = new Dm();
//String currentPlayer = player.getUsername();
//Player Dm = World.getPlayerByDisplayName("Dm");
if (player.getUsername().equalsIgnoreCase("Dm")) {
if (World.getPlayers().size() <= 1){
player.getPackets().sendPanelBoxMessage("Not enough players logged in.");
} else {
Dm.initiative();
player.getPackets().sendPanelBoxMessage(Dm.playersName + " and initiative roll: " + Integer.toString(Dm.initRoll));
}
}
return true;
DM.java
包com.rs.game.player;
导入com.rs.game.player。*;
导入com.rs.game.World;
导入java.util.array;
/**
*由Kevinpro0于2015年3月1日创建。
*/
公共类Dm{
公共静态骰子初始化=新骰子();
public static int worldSize=World.getPlayers().size();
public static int[]playerlint=new int[worldSize];
//
公共静态播放器;
公共静态int initRoll=init.die20;
公共静态字符串播放器名称;
公共静态int i=1;
公共空间倡议{
对于(i=1;i 如果(World.getPlayers().size()在这一行publicstatic int initRoll=init.die20;
中,您指的是'die20'的值,但直到很久以后,在for循环中,当您说init.d20()
时,它才被设置。我希望这对您有所帮助,尽管我认为您的代码也需要在其他领域工作