全局变量"x"不存在,处理 3.2.3



我刚开始在Processing中编码时,遇到了一个找不到解决方案的错误。

代码:

void setup(){
size(640,360);
}
int scl = 20;
void draw(){
background(250);
drawGrid(scl);
makeObject(0,0,20,20);
}
void drawGrid(float size){
for(int v=0;v<640/20;v++){
for(int h=0;h<360/20;h++){
rect(h*size,v*size,size,size);
}
}
}
void makeObject(int obX,int obY,int obHeight,int obWidth){
this.x = obX;
this.y = obY;
this.obH = obHeight;
this.obW = obWidth;
rect(this.x,this.y,this.obH,this.obW);
}

错误为:"全局变量"x"不存在"、"全局变量"y"不存在"等等。请帮助

好吧,您的错误说明了一切:您使用了x变量,但从未声明它。

让我猜一猜:你来自JavaScript背景?makeObject()函数看起来像一个JavaScript构造函数,但对象在Java中根本不是这样工作的。

在Java中,您必须定义一个class,然后声明要使用的变量。像这样:

class MyObject{
float x;
float y;
float obH;
float obW;
public MyObject(float obX, float obY, float obHeight, float obWidth){
this.x = obX;
this.y = obY;
this.obH = obHeight;
this.obW = obWidth;
}
}

然后可以向该类添加函数,例如使用这些变量绘制矩形的drawMe()函数。

然而,我不知道你为什么要创建一个对象,因为你从来没有真正使用过你创建的对象。你可以直接使用参数:

void makeObject(int obX,int obY,int obHeight,int obWidth){
rect(obX, obY, obHeight, obWidth);
}

最新更新