如果这太基于数学,我想道歉。
我有一个项目,我必须使用我们老师的自定义游戏引擎创建一个 AngryBirds 游戏,但是我被困在弹弓背后的数学上。我们不允许使用任何标准库。左上角为 0, 0 向下时 y 轴增加。窗口的总宽度为 1280 像素,高度为 720 像素。当您将鸟从 257、524 的吊索原点向左拉时,我试图让鸟走得更远。我在开始时使用了释放的 y 值,这样鸟就不会在 y- 的其他地方移动放手后轴直。目前这只鸟在 y 轴上增加,这是可以预料的,因为这正是我的代码所做的。我创建了一个变量,确定一旦放开鼠标,鸟离弹弓的原点有多远,我想在速度计算中使用这个值。我不知道在二次公式中使用什么值来使鸟留在屏幕上。我试图说明窗口以使其更清晰。
float y = getY() + getX()/10 * getX()/10 * (game_time.delta.count() / 10000.f);
setY(y);
//window illustration
------------------------------------------------------------------------------
| (0, 0) |
| |
| |
| o o |
| o |
| o o |
| |
|bird-> o\ / (257, 524) o |
| | |
|_________|______________________________________________________(1280, 720)_|