2017-11-09 6 views
1

これはJavaでOOPを行って以来、この問題を経験していないので、私はかなり混乱しています。基本的に私は、問題のオブジェクトを作成するクラスを呼び出すために行くとき、私はそれが動作しないアイデアがない、私はそれが単純化されたJavaの処理のビットを誤っているかもしれないと仮定して起こっていない。クラスが処理中のIDEを呼び出さない

final color RED = color(255,0,0); 
final color BLUE = color(0,0,255); 

motorbike bike1; 
motorbike bike2; 

class motorbike 
{ 
int x = 5; 
//members 
int y; 
int speed=2; 
int size=30; 
color colour; 

void render() 
{ 
    float wheelHeight = size/3; 
    fill(colour); 
    triangle(x,y,x+size,y,x+size/2,y-size/2); 
    //built-in triangle routine 
    drawWheel(x,y,wheelHeight); 
    drawWheel(x+size,y,wheelHeight); 
} 

void drawWheel(int x, int y,float size) 
{ 
    float inner = size*2/3; 
    fill(0); 
    ellipse(x,y,size,size); 
    fill(255); 
    ellipse(x,y,inner,inner); 
} 

void move() 
{ 
    speed= (int)random(5.0); 
    //a random step [0..5] 
    x=x+speed; 
} 
void update() { 
    move(); 
    render(); 
} 

motorbike(int y,color col){ 
    //constructor 
    this.y=y; 
    this.speed= (int)random(5.0); 
    this.colour=col; 
} 


//endof class description 
} 

void setup() 
{ 
    size(500,100); 
    bike1 = new motorbike(RED,30); 
    bike2 = new motorbike(BLUE,60); 
    print("Come on"); 
} 

void draw() 
{ 
    background(125); 
} 

申し訳ありませんが本当にダムの質問ですが、これは私がオブジェクトを描画していない理由はわかりません。

+0

に、あなたは完全な宣言を共有することができますか?私はテストし、あなたにフィードバックと解決策を送信する必要があります – oetoni

+0

上記は完全なコードですそれは処理中に見えるかもしれません。 – user3469829

+1

'draw()'メソッドはバックグラウンドを設定するだけです。何が起こると思いますか? –

答えて

2

コンストラクタにはパラメータ(int、color)があります。

motorbike(int y,color col) 

あなたはまた、あなたの最近作成されたオブジェクトのbike1とからcall your functionsに持って

bike1 = new motorbike(RED,30); 

間違った順序(色、int型)でパラメータを渡しています。一度

bike1.render(); 

あなたが処理で作業しているように、これらの方法はdraw()に呼び出される必要があり、おそらくrender()setup()

+1

ええ、私はそれらを切り替えただけで、まだ何も描画していません。 – user3469829

+0

たとえば、オブジェクトbike1を使用して関数を呼び出しましたか? –

+0

はい、文字通り上記のコードと同じですが、変数は正しい方法です。 – user3469829

関連する問題