Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 27.10.2011, 00:15   #1
Bearer
AnyKey`щик
 
Регистрация: 27.10.2011
Сообщений: 15
Написано 0 полезных сообщений
(для 0 пользователей)
Смех Поворот камеры

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

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)

Помогите выяснить, в чем проблема)
(Offline)
 
Ответить с цитированием
Старый 27.10.2011, 00:16   #2
NitE
злобный флудер
 
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений
(для 1,476 пользователей)
Ответ: Поворот камеры

xC=xC+MouseXSpeed()
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Bearer (27.10.2011)
Старый 27.10.2011, 00:24   #3
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Поворот камеры

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())
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
Bearer (27.10.2011), Mr_F_ (27.10.2011), Reizel (27.10.2011), Reks888 (27.10.2011)
Старый 27.10.2011, 00:52   #4
.Squid
Дэвелопер
 
Аватар для .Squid
 
Регистрация: 06.04.2009
Адрес: Запорожье
Сообщений: 1,500
Написано 1,011 полезных сообщений
(для 4,642 пользователей)
Ответ: Поворот камеры

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

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

(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо .Squid за это полезное сообщение:
Bearer (27.10.2011), impersonalis (27.10.2011)
Старый 27.10.2011, 15:38   #5
Bearer
AnyKey`щик
 
Регистрация: 27.10.2011
Сообщений: 15
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Поворот камеры

Спасибо большое, разъяснили) все понял, исправил.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com