2017-01-26 14 views
1

解決法が見つからないエラーが発生したときに、処理中にコーディングを開始していました。グローバル変数 "x"は存在しません。処理3.2.3

コード:

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); 
} 

エラーがある:「グローバル変数 『Y』が存在しない」などのグローバル変数は存在しない 『×』 '。 助けてください

+1

クラスにこれらの変数が定義されていますか? – AntonH

答えて

1

まあ、あなたのエラー:それは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()関数として、そのクラスに機能を追加することができます。

しかし、あなたが作成するオブジェクトを実際に使用することはないので、なぜオブジェクトを作成しようとしているのかわかりません。

+0

迅速な対応をありがとうございます。私は非常に単純なゲームを作ることを計画していました。私は再利用可能な機能を作ることで、もっと簡単にできると思っていました。 –

+0

@ Mr.Dude__あなたは正しい考えを持っています。できるだけ、再利用可能な関数やオブジェクトを使用する必要があります。しかし、あなたの構文はちょうどオフでした。あなたはクラスと関数の中間にいました。あなたはちょうど1つを選択する必要があります。 :p –

+1

あなたはJavascriptのバックグラウンドから来てくれていることについても納得しました。また、クラスとオブジェクトの仕組みを理解できるようになったので、お返事ありがとうございます。 –

関連する問題