forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Поворот камеры (http://forum.boolean.name/showthread.php?t=15716)

Bearer 27.10.2011 00:15

Поворот камеры
 
Всем доброго времени суток! Такая проблема - хочу по движении мыши вверх/вниз поворачивать камеру соответственно вверх/вниз. Но проверяется только первое условие:

Код:

If MouseXSpeed()>0 Then
xC=xC+0.3
ElseIf MouseXSpeed()<0 Then
xC=xC-0.3
EndIf

То есть проверяется только MouseXSpeed()>0. И повернуть камеру можно только вниз (xC=xC+0.3).

Если поменять местами условия:

Код:

If MouseXSpeed()<0 Then
xC=xC-0.3
ElseIf MouseXSpeed()>0 Then
xC=xC+0.3
EndIf

то проверяет опять лишь первое условие, теперь это MouseXSpeed()<0. И камера поворачивается только вверх (xC=xC-0.3)

Помогите выяснить, в чем проблема)

NitE 27.10.2011 00:16

Ответ: Поворот камеры
 
xC=xC+MouseXSpeed()

impersonalis 27.10.2011 00:24

Ответ: Поворот камеры
 
Код:

local mxs#=MouseXSpeed()
If mxs>0 Then
xC=xC+0.3
ElseIf mxs<0 Then
xC=xC-0.3
EndIf

=(
Код:

xc=xc+0.3*sgn(MouseXSpeed())

.Squid 27.10.2011 00:52

Ответ: Поворот камеры
 
При проверке второго условия (ElseIf MouseXSpeed()<0 Then) функция MouseXSpeed() возвращает ноль, т.к. за время прошедшее между этим вызовом и предыдущим (в первой проверке) мышь не успела сдвинуться на значительное расстояние (прошло несколько наносекунд).

Это чтобы ты знал, что происходит. Как исправить, уже сказали.

Bearer 27.10.2011 15:38

Ответ: Поворот камеры
 
Спасибо большое, разъяснили) все понял, исправил.


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

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