我是編程和處理的新手。在Processing中,我很難從另一個類的一個類中訪問變量。在處理中使用另一個類中的一個類的變量
我有兩個類「球」類和碰撞類。
class ball {
float xBall;
float yBall;
int balldiameter = 20;
float oldxball, oldyball;
boolean linehit;
color ballcolor = color(100, 200, 100);
float r;
float x;
float speedx, speedy;
float speed = 6;
ball() {
xBall = 200;
yBall = 300;
r = 2.8;
boolean linehit;
} // ball()
void ballUpdate() {
float px = xBall + cos(r)*(speed);
float py = yBall + sin(r)*(speed);
speedx = px - xBall;
speedy = py - yBall;
oldxball = xBall;
oldyball = yBall;
xBall += speedx;
yBall += speedy;
// display ball
stroke(0);
fill(ballcolor);
ellipse (xBall, yBall, balldiameter, balldiameter);
} //void ballUpdate()
} // class ball
碰撞類:
class collision {
ball bl;
collision() {
} // collision()
void collisionUpdate() {
bl = new ball();
println(bl.r);
println(bl.xBall);
println(bl.yBall);
println(bl.x);
在這裏,我嘗試訪問xBall,並從球類碰撞類中其他變量的代碼運行,但如果語句是不正確的。變量保持不變。
if (bl.xBall < 0 || bl.xBall > width) { // side wall
bl.x = PI - bl.r;
bl.r = bl.x;
println("if 1");
}
if (bl.yBall < 0 || bl.yBall > height) { // top & bottom
bl.x = TWO_PI - bl.r;
bl.r = bl.x;
println("if 2");
}
} // void collisionUpdate()
} // class collision
我試着將球類中的xBall,YBall,r和x變量連接到碰撞類,使球在牆上反彈。 主要是這樣的:
ball bl;
collision cl;
void setup() {
size(600, 600);
bl = new ball();
cl = new collision();
}
void draw() {
background(255);
bl.ballUpdate();
cl.collisionUpdate();
遺憾的noob問題,但我是個初學者
您可以發佈的[MCVE(HTTP:/ /stackoverflow.com/help/mcve)而不是這些斷開連接的片段? – 2014-08-27 16:57:04