-3
所以我有我的处理代码,除了一个PVector,其速度不能正常工作并且不与代码的其余部分同步以外,一切正常。代码用于弹跳球,但左上角的代码没有明显的原因偏离屏幕。处理:一个对象忽略语句
PVector location;
PVector velocity;
PVector location2;
PVector velocity2;
PVector location3;
PVector velocity3;
PVector location4;
PVector velocity4;
int size;
int acceleration;
void setup() {
size(640,360);
location = new PVector(0,180);
location2 = new PVector(640,180);
location3 = new PVector(0,180);
location4 = new PVector(640,180);
velocity = new PVector(10,-18);
velocity2 = new PVector(-10,18);
velocity3 = new PVector(-10,18);
velocity4 = new PVector(10,-18);
acceleration = 1;
size = 16;
}
void draw() {
background(255);
velocity.y=velocity.y+acceleration;
velocity2.y=velocity2.y-acceleration;
velocity3.y=velocity2.y-acceleration;
velocity4.y=velocity4.y+acceleration;
location.add(velocity);
location2.add(velocity2);
location3.add(velocity3);
location4.add(velocity4);
//size = size + 1;
if ((location.x > 320) || (location.x < 0)) {
velocity.x = velocity.x * -1;
}
if ((location2.x > width) || (location2.x < 320)) {
velocity2.x = velocity2.x * -1;
}
if ((location3.x > 320) || (location3.x < 0)) {
velocity3.x = velocity3.x * -1;
}
if ((location4.x > width) || (location4.x < 320)) {
velocity4.x = velocity4.x * -1;
}
if ((location.y > height) || (location.y < 0)) {
velocity.y = -18;
}
if ((location2.y > height) || (location2.y < 0)) {
velocity2.y = 18;
}
if ((location3.y > height) || (location3.y < 0)) {
velocity3.y = 18;
}
if ((location4.y > height) || (location4.y < 0)) {
velocity4.y = -18;
}
stroke(0);
fill(0);
ellipse(location.x,location.y,size,size);
ellipse(location2.x,location2.y,size,size);
ellipse(location3.x,location3.y,size,size);
ellipse(location4.x,location4.y,size,size);
}
*代码片段*旨在与可由浏览器“运行”的代码一起使用,如HTML/CSS/JavaScript。对于像Java这样的代码示例,使用*代码示例*(不是说它与您的问题中的问题有关)。 – Pshemo 2014-10-31 18:18:06
好吧,那么你是否试图减少你的代码来找到问题所在?因为这是很多手工复制粘贴的复制,而不是一个很好的编程式'ArrayList',您只需循环并执行一次所有必需的操作。有问题的点是case 3,所以删除所有的1/2/4条目,看看会发生什么(会发生什么情况是Processing IDE会立即向您显示您错误的位置,并且您应该在发布到stackoverflow =之前尝试过)。 –
2014-10-31 18:21:46