提问者:小点点

处理-3路乒乓球游戏


我的总体目标是创建一个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);
}

共1个答案

匿名用户

您将不得不更改冲突检测代码,以便它检测圆何时与三角形边界而不是屏幕边缘发生冲突。

将你的三角形定义为三个线段,那么你就可以专注于检测圆和每个线段之间的碰撞。谷歌在这里是你的朋友,但这个问题有一堆答案。

然后你可能想反映线周围的点,以便圆圈根据线段以一定的角度反弹。同样,谷歌是你的朋友,但这是另一个带有一堆答案的问题。

我建议把你的问题分成更小的步骤,一次只关注一个。首先让一个程序工作,只检查一个圆是否与一个线段相撞:首先尝试硬编码点,然后也许使用光标位置,然后一直工作到一个弹跳的球。