gpt4 book ai didi

java - 对象数组NullPointerException,处理3.3.6

转载 作者:行者123 更新时间:2023-12-02 11:48:23 25 4
gpt4 key购买 nike

我正在尝试在处理中制作一个简单的 3d 游戏,但遇到了问题。我尝试创建一个数组来跟踪我的环境对象并使其更容易修改。但是,当我尝试运行该程序时,它不起作用。

主要代码:

  //arrays
BoxCl[] envArr;

void setup() {
size(640, 360, P3D);

envArr[0] = new BoxCl(1,1,-1,1); //it shows the error here
envArr[envArr.length] = new BoxCl(2,1,-1,1);
}

void draw() {
background(0);
camera(mouseX, height/2, (height/2) / tan(PI/6), width/2, height/2, 0, 0, 1, 0);
Update();
Draw();
}

void Update(){

}

void Draw(){
for(BoxCl i : envArr){
i.Draw();
}
}

BoxCl 类:

class BoxCl{

float x, y, z;
int s;

BoxCl(float x, float y, float z, int size){
this.x = x;
this.y = y;
this.z = z;
this.s = size;
}

void Draw(){
translate(scale*x, scale*y, scale*z);
stroke(255);
fill(255);
box(s * scale);
translate(scale*-x, scale*-y, scale*-z);
}

}

我尝试查找它( here for example ),但我认为我太缺乏经验,无法理解我应该做什么。

请帮忙。

编辑:我知道变量/数组/对象应该在使用之前定义。但是如何以仍然可以更改的方式定义 envArr? (即当我必须创建或删除对象时增加或减少大小)

最佳答案

您的envArr变量为null。在使用它之前,您必须将其初始化。

你可能想要这样的东西:

BoxCl[] envArr = new BoxCl[10];

无耻的 self 推销:我在Processing available中写了一篇关于数组的教程here 。您还应该养成 debugging your code 的习惯通过添加 println() 语句或使用调试器单步执行代码。例如,如果您在引发错误的行之前打印出 envArr 的值,您会亲眼看到它是 null

关于java - 对象数组NullPointerException,处理3.3.6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48052021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com