标签:rectangles java arrays object nullpointerexception
我正在尝试制作2D切片游戏,当制作包含切片的阵列时,我得到了NullPointerException,这是一些代码.
抱歉,如果格式不正确,请第一时间
公共类世界{
//holds data for where to place images and rectangles
int[][] worldDat = new int[25][25];
//hold rectangles for checking interaction with player
Rectangle[][] blocks = new Rectangle[25][25];
//holds block's images to be painted
Image[][] blockImage = new Image[25][25];
//holds position to be pained on screen
int[][] location = new int[25][25];
//enumeration holding block's images and other things of the sort
EWorldBlocks eBlocks;
//sets all of the arrays listed above
public void setupAll(){
for(int i = 0; i < 24; i++){
for(int e = 0; e < 24; e++){
blocks[i][e].setBounds(e * 20, i * 20, 20, 20);
blocks[i][e].setLocation(e*20, i*20);
if(worldDat[i][e] == 6){
blockImage[i][e] = getRandomGrass();
}else if(worldDat[i][e] == 0){
blockImage[i][e] = null;
}else{
blockImage[i][e] = eBlocks.intToImage(worldDat[i][e]);
}
}
}
}
//used to get a random block
private Image getRandomGrass()
{
Random rand = new Random();
int r = rand.nextInt(2);
r++;
return eBlocks.intToImage(r);
}
public World(int[][] worldDat) {
this.worldDat = worldDat;
}
}
然后在本课程中被称为(我相信这是问题的一部分)
公共类worldDraw {
//ALSO if there is a better way to do this, do tell
levels levels = new levels();
static levels sLevels = new levels();
World level1;
static World sLevel1 = new World(sLevels.getLevel1());
//called in paint method for panel
public void draw(Graphics2D g2){
sLevel1.setupAll();
for(int i = 0; i < 24; i++){
for(int e = 0; i < 24; i++){
g2.drawImage(level1.blockImage[i][e], e*25, i*25, null);
}
}
}
//holds levels
public worldDraw() {
level1 = new World(levels.getLevel1());
}
}
解决方法:
创建对象数组时,将创建引用数组,但未分配引用.在尝试使用它们之前,必须先执行此操作.认为它类似于创建鸡蛋纸箱.在先将鸡蛋装满纸箱之前,您不能使用任何鸡蛋.因此,例如您的blocks数组,首先需要将Rectangle对象分配给数组中的每个项目,然后才能对其调用方法.这通常在for循环中完成.例如.,
for(int i = 0; i < 24; i++){
for(int e = 0; e < 24; e++){
blocks[i][e] = new Rectangle(....); //...
blocks[i][e].setBounds(e * 20, i * 20, 20, 20);
blocks[i][e].setLocation(e*20, i*20);
标签:rectangles,java,arrays,object,nullpointerexception 来源: https://codeday.me/bug/20191012/1902900.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。