IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Программирование (https://www.imho.ws/forumdisplay.php?f=40)
-   -   ускорение в игре (https://www.imho.ws/showthread.php?t=92345)

Melkor 09.09.2005 23:38

ускорение в игре
 
Привет!
Как сделать плавное увеличение скорости. Допустим чтоб вертолетик в игре медленно разгонялся.
Основа - OpenGL, но не на прямую и не через Glut.
прерывания клавиатуры получаю через
isKeyDown(SG_RIGHT)
там же ставится на сколько позиций менять положение объекта (допустим y+=3 или y-=3), то есть позиция относительно текущей позиции. Числа целые...
пробовал несколько вариантов но так клавиаутра посылает сигналы довольно быстро то все ускорение пролетает довольно быстро.
Есть идея создатьмассив и брать среднее значение из него.. но это слишком нудно получится...
Язык С++, но лучше алгоритм.
сеньксь

/7y3uK 10.09.2005 00:50

ну тут такой момент - преывание с клавы ты действительно получаешь очень быстро - к этим интервалам привязываться ИМХО не имеет особого смысла в случае с целыми числами - лучше использовать числа с плавающей точкой... тебе нужена какая-нибудь быстрорастущая функция, которая будет вначале медленная а потом быстрая - на бесконечности у тебя как раз будет максимальная скорость... Что-то наверное типа экспоненты в вариациях...прерывание в данном случае будет играть роль значений аргументов видимо, т.к. примерно с одинаковым интервалом будет срабатывать... а текущее положение это будет множитель - тут смотря от чего у тебя отсчитываются координаты... ну вот как-то так, примерно :)

Melkor 10.09.2005 01:27

Спасибо :)
собственно сам только что нашел решение:
класс и на каждое прерывание прибавляем/вычитаем к внетрунней переменной (double) 0.05 и выдаем как целое.Если ничего не происходит - тормозим. Само-собой получается прямая линия если чертить график :))


Часовой пояс GMT +4, время: 16:34.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.