Я хотел бы извиниться, если это слишком основано на математике.
У меня есть проект, в котором я должен создать игру AngryBirds с пользовательским игровым движком нашего учителя, однако я застрял в математике за рогаткой. Нам не разрешено использовать какие-либо стандартные библиотеки. Слева вверху 0, 0, а ось Y увеличивается, когда вы go вниз. Общая ширина окна составляет 1280 пикселей, а высота - 720 пикселей. Я пытаюсь заставить птицу двигаться дальше, когда вы вытягиваете птицу дальше влево от источника стропа, который равен 257, 524. Я использовал значение y с момента выпуска в начале, чтобы птица не go где-то еще в ось у сразу после разрешения go. В настоящее время птица увеличивается по оси Y, что и следовало ожидать, учитывая, что это именно то, что делает мой код. Я создал переменную, определяющую, как далеко от источника рогатки находится птица, когда мыши позволили go, и я хотел бы использовать это значение в расчете скорости. Я не знаю, какие значения использовать в формуле квадратичного c, чтобы птица оставалась на экране. Я попытался проиллюстрировать окно, чтобы сделать его более понятным.
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)_|