使物体以正确的角度反射

时间:2015-09-12 15:54:47

标签: vb.net visual-studio-2010 graphics

我正在使用vb.net制作游戏。我在屏幕的中心有一个球(实际上并非如此)。它移向另一个物体,该物体具有圆形表面,并且应该以正确的方向和角度反射回来。

许多游戏都基于对象的弹回(大多数都基于高级语言)。但是,我真的无法弄明白。

所以,我试着看一些东西,比如通过从初始点计算像素并向相反方向发送那么多像素来获取它开始的角度。我为此尝试的代码是:

Dim x1, y1 as integer
x1 = object.left
y1 = object.top

当对象的坐标位于屏幕中央时,它将对象的坐标存储在起始位置。虽然以下代码试图实现实际需要:

Dim a, b as integer
a = x1-object.left
b = x2-object.top

我已经获得了它移动的像素数,但是我不知道如何使用它来反射相同的角度,以及这种技术是否会起作用。

所以,基本上我想要的是:

enter image description here

现在出现两种情况:

  • 如何从平面反射对象
  • 如何从圆形表面反映

1 个答案:

答案 0 :(得分:1)

从另一个球上弹出一个球就像从一个平坦的表面反弹一样。由于球只在一点接触,如果该点是弯曲或平坦表面的一部分,则移动球没有区别。

球的作用就像它从平面反弹一样,这是该点反射物体曲线的切线(以及运动物体曲线的切线):

Bounce

反射运动是围绕垂直于平面的线镜像的角度,并且穿过球的中心。 (当反射物体是一个球时,线也会穿过它的中心,当你想要计算它时,这可能会有所帮助。)