2016-04-18 17 views
1

コード:ボールが窓の中央にないのはなぜですか?

class Attractor { 

    PVector location; 
    float mass; 

    Attractor() { 
    location = new PVector(width/2, height/2); 
    mass = 5; 
    } 

    void display() { 
    stroke(0); 
    fill(125); 
    ellipse(location.x, location.y, mass*10, mass*10); 
    } 
} 

Attractor a = new Attractor(); 

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

void draw() 
{ 
    background(255); 
    a.display(); 
} 

ボールの位置は、アトラクタオブジェクトである、すなわち、P-VECTOR(幅/ 2、高さ/ 2)です。

私はコードを実行すると、中央になく、ウィンドウの右側と上に表示されます。

+0

これは何語ですか? – Neal

+0

@ニール処理。それはタグの中にあります。 –

答えて

1

これは、関数が呼び出される前にAttractorの前にが作成されたためです。 widthheightはまだ設定されていないため、デフォルトの100になっています。ちょうどあなたがsize()関数を呼び出した後、あなたのAttractorを作成することを確認し、この問題を解決するには

Attractor a; 

void setup() 
{ 
    size(640, 360); 
    a = new Attractor(); 
} 
+0

本当に助けていただきありがとうございます。私が読んでいる本では、セットアップ機能の中でオブジェクトを初期化するのは不思議ではありません。 –

関連する問題