我的总体目标是创建一个3路“乒乓球”游戏。三角形边界将使用3个桨沿着3条边移动。一个球将在这个三角形内弹跳,桨将用于尝试阻止球击中三角形的每一边。首先,我试图让一个球在三角形的边界内弹跳。我目前只有一个弹跳的球。有人能建议如何继续吗?
float x = 100;
float y = 100;
float xspeed = 1;
float yspeed = 3.3;
void setup() {
size(500,500);
}
void draw() {
background(255);
fill(255,10);
rect(0,0,width,height);
x = x + xspeed;
y = y + yspeed;
if ((x > width) || (x < 0)) {
xspeed = xspeed * -1;
}
if ((y > height) || (y < 0)) {
yspeed = yspeed * -1;
}
fill(175);
ellipse(x,y,16,16);
}
您将不得不更改冲突检测代码,以便它检测圆何时与三角形边界而不是屏幕边缘发生冲突。
将你的三角形定义为三个线段,那么你就可以专注于检测圆和每个线段之间的碰撞。谷歌在这里是你的朋友,但这个问题有一堆答案。
然后你可能想反映线周围的点,以便圆圈根据线段以一定的角度反弹。同样,谷歌是你的朋友,但这是另一个带有一堆答案的问题。
我建议把你的问题分成更小的步骤,一次只关注一个。首先让一个程序工作,只检查一个圆是否与一个线段相撞:首先尝试硬编码点,然后也许使用光标位置,然后一直工作到一个弹跳的球。