| Проблема с Xors3D | 
|  | 
| 
| Kamskii | Дата: Среда, 03 Марта 2010, 22:05 | Сообщение # 1 |  |   Game ≠ Toy Сейчас нет на сайте | Решил попробовать Xors3D+Blitz3D и написать демку(вид от первого лица,ходьба и.т.д.). Но вот возникла проблема. Эта строчка кода 
 Code  xTurnEntity Player,0,-xMouseXSpeed,0
 
не работает-камера(а она привязана к игроку в виде пивота)не поворачивается. Я вывел на экран значение xMouseXSpeed-оно равно нулю, как ни крути мышку(даже как рубанок
  ). Не могу понять, где собака зарыта. |  |  |  |  | 
| 
| Sky | Дата: Среда, 03 Марта 2010, 23:56 | Сообщение # 2 |  |   частый гость Сейчас нет на сайте | Я могу ошибаться (с Xors3d работал слабо), но вроде функция MouseXSpeed относится к 2д - возможностям движка, то есть ставить перед ним "х" не нужно. 
 Sky (Fire Blood)
 |  |  |  |  | 
| 
| Kamskii | Дата: Четверг, 04 Марта 2010, 04:58 | Сообщение # 3 |  |   Game ≠ Toy Сейчас нет на сайте | Quote (Sky) то есть ставить перед ним "х" не нужно. То же самое. Камера не крутится, скорость нулевая.
 |  |  |  |  | 
| 
| Sky | Дата: Четверг, 04 Марта 2010, 07:58 | Сообщение # 4 |  |   частый гость Сейчас нет на сайте | Kamskii, дай посмотреть на текст программы - может и помогу =-) 
 Sky (Fire Blood)
 |  |  |  |  | 
| 
| Kamskii | Дата: Четверг, 04 Марта 2010, 21:36 | Сообщение # 5 |  |   Game ≠ Toy Сейчас нет на сайте | Sky, держи вот тут.   |  |  |  |  | 
| 
| Sky | Дата: Пятница, 05 Марта 2010, 00:56 | Сообщение # 6 |  |   частый гость Сейчас нет на сайте | Вух, придумал. Во-первых, в Xors3d всё-таки используется функция xMouseXSpeed(), а во-вторых, в модуле Player ты проводишь проверку на место положение курсора мыши, и если он выходит за границы экрана, то возвращаешь его в центр. Так вот, эту проверку нужно проводить после поворота объекта, а то у тебя получается, что курсор сначала становится в начальную точку (то есть его перемещение равно нулю), а потом происходит поворот объекта с этим нулевым параметром=-)))) Кстати, проверку положения курсора мыши можно заменить одной строчкой xMoveMouse(ScreenWidth/2,ScreenHeight/2) (думаю, так проще  )... Если что не получится, отпишись=-)))) 
 Sky (Fire Blood)
 
 
 Сообщение отредактировал Sky - Пятница, 05 Марта 2010, 00:58 |  |  |  |  | 
| 
| Akyltist | Дата: Пятница, 05 Марта 2010, 01:08 | Сообщение # 7 |  |   заслуженный участник Сейчас нет на сайте | Quote 	If xMouseX<50 Then xMoveMouse(ScreenWidth/2,ScreenHeight/2)   If xMouseY>718 Then xMoveMouse(ScreenWidth/2,ScreenHeight/2)   If xMouseX>974 Then xMoveMouse(ScreenWidth/2,ScreenHeight/2)   If xMouseY<50 Then xMoveMouse(ScreenWidth/2,ScreenHeight/2)   xTurnEntity Player,0,-MouseXSpeed,0  Quote xMouseXSpeed-оно равно нулюэта функция возвращает передвижение мыши по х после последнего вызова)) Поэтому и 0
  Почему бы сначала не сохранять разницу между текущим положением и центром экрана, ложить ее в переменную, а потом уже сбрасывать?    Quote проверку положения курсора мыши можно заменить одной строчкой xMoveMouse(ScreenWidth/2,ScreenHeight/2)Тогда каk работать с интерфейсом типа кнопок? если все время сбрасывать на центр?
 Как совет резать в сторону не интерфейсных углов, и то есть выбирать правильный диапазон вида: [меньше x но больше y]
 |  |  |  |  | 
| 
| Sky | Дата: Пятница, 05 Марта 2010, 08:46 | Сообщение # 8 |  |   частый гость Сейчас нет на сайте | Quote  Тогда каk работать с интерфейсом типа кнопок? если все время сбрасывать на центр?  Akyltist, это просто пример работы с камерой с использованием Xors3d. Там интерфейса как такового нет. Да и к тому же, я считаю, что при работе с меню подобные проверки в-принципе не нужны, ибо если курсор выйдет за границы экрана в этот момент, то ни с игрой и ни с меню от этого ничего не станет (наоборот, это может привести к проблемам переключения из игры в Windows). А вот если произойдет выход курсора мыши за границы экрана во время игры, то это может привести к ошибкам работы камеры, а именно к её остановке...    Quote  Почему бы сначала не сохранять разницу между текущим положением и центром экрана, ложить ее в переменную, а потом уже сбрасывать? Я же говорил, что можно функцию поворота и проверки поменять местами, тогда получится, что он сначала повернет камеру, а потом уже сбросит. Единственное, что в это случае на экране всё-равно будет
 Quote  xMouseXSpeed-оно равно нулю    Добавлено (05.03.2010, 08:46)---------------------------------------------
 А вот если кнопки будут в самой игре (дверь открыть например), то всё равно лучше будет организовать их активацию прицелом, который находится в центре экрана (если конечно эта игра не квест =-). В случае, если это игра всё-таки квест, то необходимость в таких проверках, конечно, имеется.
 
 Sky (Fire Blood)
 |  |  |  |  | 
| 
| Kamskii | Дата: Пятница, 05 Марта 2010, 21:21 | Сообщение # 9 |  |   Game ≠ Toy Сейчас нет на сайте | Поменял местами-поворота как не было, так и нет. Кстати, в Блице данная процедура работала нормально. |  |  |  |  | 
| 
| Sky | Дата: Пятница, 05 Марта 2010, 21:29 | Сообщение # 10 |  |   частый гость Сейчас нет на сайте | А "х" перед MouseXSpeed поставил? 
 Sky (Fire Blood)
 |  |  |  |  | 
| 
| Kamskii | Дата: Пятница, 05 Марта 2010, 21:33 | Сообщение # 11 |  |   Game ≠ Toy Сейчас нет на сайте | Quote (Sky) А "х" перед MouseXSpeed поставил? Поставил.
 |  |  |  |  | 
| 
| Sky | Дата: Пятница, 05 Марта 2010, 21:33 | Сообщение # 12 |  |   частый гость Сейчас нет на сайте | А, и кстати, после xMouseXSpeed должны быть двойные скобки... Лично у меня без них мышь тоже не работает =-)))) 
 Sky (Fire Blood)
 |  |  |  |  | 
| 
| Kamskii | Дата: Пятница, 05 Марта 2010, 21:39 | Сообщение # 13 |  |   Game ≠ Toy Сейчас нет на сайте | Sky, я уже чувствую себя клиническим дебилом, но все-таки не работает! |  |  |  |  | 
| 
| Sky | Дата: Пятница, 05 Марта 2010, 21:49 | Сообщение # 14 |  |   частый гость Сейчас нет на сайте | Нет уж, начинаю чувствовать себя я. Сейчас попробую залить куда нибудь этот пример.Quote  клиническим дебилом  Добавлено (05.03.2010, 21:49) ---------------------------------------------
 Ссылку удалил =-)))))
 
 Sky (Fire Blood)
 
 
 Сообщение отредактировал Sky - Пятница, 05 Марта 2010, 22:08 |  |  |  |  | 
| 
| Kamskii | Дата: Пятница, 05 Марта 2010, 22:07 | Сообщение # 15 |  |   Game ≠ Toy Сейчас нет на сайте | Sky, удаляй, я сейчас гляну. |  |  |  |  | 
| 
| Kamskii | Дата: Пятница, 05 Марта 2010, 22:12 | Сообщение # 16 |  |   Game ≠ Toy Сейчас нет на сайте | Ура, работает! Правда, я не пойму, в чем разница между моим и твоим кодом-абсолютно ОДИНАКОВЫЕ, но твой вариант почему-то работает... То ли это у меня руки не из того места растут, то ли это с компьюетром что-то(в Unity3D тоже чудеса какие-то творятся).
 
 |  |  |  |  | 
| 
| Sky | Дата: Пятница, 05 Марта 2010, 22:16 | Сообщение # 17 |  |   частый гость Сейчас нет на сайте | Всегда пожалуйста =-)))))) Кстати, может проблема в файле xors3d.bb (то есть у нас разные версии Xors3d). Если не лень, попробуй свой файл xors3d.bb перенести в мой архив (только резервную копию файлов сделай =-)))) 
 Sky (Fire Blood)
 |  |  |  |  | 
| 
| Kamskii | Дата: Пятница, 05 Марта 2010, 22:30 | Сообщение # 18 |  |   Game ≠ Toy Сейчас нет на сайте | С твоим заголовочным файлом проект не грузился-была ошибка именно в xors3d.bb(не помню где). С моим все пошло нормально. |  |  |  |  | 
| 
| Sky | Дата: Пятница, 05 Марта 2010, 22:33 | Сообщение # 19 |  |   частый гость Сейчас нет на сайте | У меня было тоже самое с твоим заголовочным файлом. Ну тогда я не знаю в чем дело   
 Sky (Fire Blood)
 |  |  |  |  | 
| 
| Kamskii | Дата: Пятница, 05 Марта 2010, 22:49 | Сообщение # 20 |  |   Game ≠ Toy Сейчас нет на сайте | Sky, я, если честно, пребываю в состоянии некой прострации  Сейчас попробую Хорс обновить с офсайта. |  |  |  |  |