forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   2D-программирование (http://forum.boolean.name/forumdisplay.php?f=109)
-   -   Вариативная сила прыжка. (http://forum.boolean.name/showthread.php?t=15763)

VoIodia 04.11.2011 07:10

Вариативная сила прыжка.
 
Посоны, суть такова - надо сделать прыжок персонажа так, чтобы чем дольше держишь клавишу прыжка, тем выше подпрыгиваешь. ну, до определённого предела, конечно. если задержка, предположим, дольше определённого времени, то персонаж подпрыгивает сам на максимальную высоту.
так вот, я написал первое, что пришло в голову - то есть беру разность системного времени, там считаю по миллисекундам и каждые десять к начальной силе прыжка прибавляю дополнительную. как только достигает максимальной, то срабатывает прыжок и счётчики сбрасываются на ноль.
НО ЭТО ЛИШНЕЕ НАГРОМОЖДЕНИЕ ЖЕ СТОЛЬКО ИФОВ И ФУНКЦИЙ КАЖДЫЙ КАДР ПРОВЕРЯТЬ ЛАГИ ТОРМОЗА СНИЖЕНИЕ ПРОИЗВОДИТЕЛЬНОСТИ С 520-ТИ ДО 517-ТИ ФПС ЁМА.
Джентельмены, не подскажете способ попроизводительнее?

Reizel 04.11.2011 14:38

Ответ: Вариативная сила прыжка.
 
3 fps down??:-D

Все просто,

Код:

Type Player
        Field bSpaceDown:Byte
        Field iTimeSpaceHit:Int
       
        Method Update
                '...
                If(KeyDown(KEY_SPACE))
                        If(Not bSpaceDown)'тока нажал
                                iTimeSpaceHit = MilliSecs()
                                            bSpaceDown = 1
                        EndIf
                Else
                        If(bSpaceDown)
                                Local iTime = MilliSecs() - iTimeSpaceHit
                                'time - время в миллисекундах, сколько юзер держал спейс
                        EndIf
                        bSpaceDown = 0
                EndIf
                '...
        End Method
End Type


dsd 04.11.2011 17:35

Ответ: Вариативная сила прыжка.
 
А зачем особо заморачиваться?
Есть одна глобальная переменная жампофорса.
Если нажат пробел то жампафорса увеличивается постепенно пока не достигнет максимума.( То что чар сам прыгнет когда она станет максимальной это насилие над личностью игрока.)

если пробел не нажат и жампафорса не ноль и чар касается того от чего может прыгнуть, то на основе жампафорса вычисляется необходимая скорость пендаля персонажу, жампофорса обнуляется. Персонаж подлетает. Два ифа.

Зы: и вообще экономить на механике главного персонажа и удобстве управления это недальновидно.

VoIodia 04.11.2011 18:20

Ответ: Вариативная сила прыжка.
 
Павел, спасибо. И правда всё слишком просто, как сам сразу не додумался -_-
dsd
>То что чар сам прыгнет когда она станет максимальной это насилие над личностью игрока.
>и вообще экономить на механике главного персонажа и удобстве управления это недальновидно.
поиграй в Soldat, например. мне кажется это довольно удобным.


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot