forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   2D-программирование (http://forum.boolean.name/forumdisplay.php?f=13)
-   -   Проблемка. Не срабатывает ограничение 0.о (http://forum.boolean.name/showthread.php?t=4863)

Raiter 27.10.2007 03:46

Проблемка. Не срабатывает ограничение 0.о
 
Добавил плавное перемещение для игрока. Тоесть он постепенно набирает скорость при движении и так же постепенно останавливается. Дело то конечно 10 секунд, но...

Прописываю плавное перемищение по Z (вперед-назад):
[blitz]
...

If KeyDown(Key_W) And Player\ZSpeed < Player\MaxSpeed Then Player\ZSpeed = Player\ZSpeed + 0.01
If KeyDown(Key_S) And Player\ZSpeed > -Player\MaxSpeed Then Player\ZSpeed = Player\ZSpeed - 0.01

If (Not KeyDown(Key_W)) And (Not KeyDown(Key_S)) And Player\ZSpeed <> 0 Then
If Player\ZSpeed > 0 Then Player\ZSpeed = Player\ZSpeed - 0.01
If Player\ZSpeed < 0 Then Player\ZSpeed = Player\ZSpeed + 0.01
End If

...

MoveEntity Player\Entity,0,0,Player\ZSpeed
[/blitz]

Всё отлично работает. Аналогично пишу для Х:

[blitz]
...
If KeyDown(Key_A) And Player\XSpeed < Player\MaxSpeed Then Player\XSpeed = Player\XSpeed - 0.01
If KeyDown(Key_D) And Player\XSpeed > -Player\MaxSpeed Then Player\XSpeed = Player\XSpeed + 0.01

If (Not KeyDown(Key_A)) And (Not KeyDown(Key_D)) And Player\XSpeed <> 0 Then
If Player\XSpeed > 0 Then Player\XSpeed = Player\XSpeed - 0.01
If Player\XSpeed < 0 Then Player\XSpeed = Player\XSpeed + 0.01
End If

...

MoveEntity Player\Entity,Player\XSpeed,0,0
[/blitz]

Но оно не работает.... :4to: Скорость набирается больше установленного предела. Не могу понять в чем дело. Может это у меня просто глаз замылился ночью и я не вижу ошибки?

jimon 27.10.2007 11:11

Re: Проблемка. Не срабатывает ограничение 0.о
 
Код:

If KeyDown(Key_A) And Player\XSpeed < Player\MaxSpeed Then Player\XSpeed = Player\XSpeed - 0.01
If KeyDown(Key_D) And Player\XSpeed > -Player\MaxSpeed Then Player\XSpeed = Player\XSpeed + 0.01

поменяй на
Код:

If KeyDown(Key_A) And Player\XSpeed < Player\MaxSpeed Then Player\XSpeed = Player\XSpeed + 0.01
If KeyDown(Key_D) And Player\XSpeed > -Player\MaxSpeed Then Player\XSpeed = Player\XSpeed - 0.01

ps. чисто визуальный анализ кода, нифига ты аналогично не написал

Raiter 27.10.2007 12:14

Re: Проблемка. Не срабатывает ограничение 0.о
 
Бугога ) Ну точно глаз замылился. Я минут 10 пялился на этот код и так и не заметил ошибки вчера ))))


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

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