处理 - 三方乒乓球游戏

时间:2017-03-11 19:25:05

标签: processing

我的总体目标是创造一个3路' pong'游戏。将使用三角形边框,其中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 个答案:

答案 0 :(得分:1)

您必须更改碰撞检测代码,以便检测圆圈何时与三角形边界碰撞而不是屏幕边缘。

将三角形定义为三个线段,然后您可以专注于检测圆与每个线段之间的碰撞。谷歌是你的朋友,但this question有很多答案。

然后,您可能希望反映该线周围的点,以便圆圈以基于线段的角度反弹。同样,谷歌是你的朋友,但是here是另一个带有大量答案的问题。

我建议将您的问题分成更小的步骤,并一次关注一个问题。首先得到一个程序工作,只检查一个圆是否与一个线段发生碰撞:首先尝试硬编码点,然后可以使用光标位置,然后按照弹跳球的方式工作。