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

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

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

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

Ответ
 
Опции темы
Старый 03.02.2010, 20:24   #1
Raiter
Гигант индустрии
 
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений
(для 92 пользователей)
Вопрос Странный баг

Баг заключается в следующем. Есть функция создания пули CreateBullet(Bullet.BulletType,x#,y#,z#)

Вызываю её таким образом:

If MouseDown(1) Then

x# = EntityX(Player\Entity)
y# = EntityY(Player\Entity)

CreateBullet(x#,y#,0)

End If

Всё просто, но вот что интересно. Игрок стоит на месте, координаты Player\Entity никак не меняются, но пули создаются то в правильных координатах, то со сдвигом по Y. Несколько пуль правильно, несколько нет.

Чо за ...?
(Offline)
 
Ответить с цитированием
Старый 03.02.2010, 20:32   #2
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Странный баг

покажи код CreateBullet(x#,y#,0)
Возможно, пуля не может быть пермещена в требуемые координаты (отсюда и спорадичность проявления бага - завист от того есть ли доступ к игроку по прямой линии из координат создания [0,0,0]), т.к. тип коллизии для неё назначается перед позиционированием. Если это так, то измени порядо указанных команд.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 03.02.2010, 20:36   #3
Raiter
Гигант индустрии
 
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений
(для 92 пользователей)
Ответ: Странный баг

Возможно, пуля не может быть пермещена в требуемые координаты (отсюда и спорадичность проявления бага - завист от того есть ли доступ к игроку по прямой линии из координат создания [0,0,0]), т.к. тип коллизии для неё назначается перед позиционированием. Если это так, то измени порядо указанных команд.
Да не, для пули пока коллизии вообще нет.

Вот только что опытным путем узнал где собака зарыта.

Координата Y у Player\Entity при вызове CreateBullet таки немного скачет. Отключил функцию гравитации для плеера и проблема пропала. Значит дело в коллизии плеера с картой...
(Offline)
 
Ответить с цитированием
Старый 03.02.2010, 21:05   #4
H@NON
Дэвелопер
 
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений
(для 774 пользователей)
Ответ: Странный баг

перемещай игрока после того как он выстрелит, либо вызывай создание пуль после UpdateWorld(), особенно часто бывает это для камеры и кажется что она неплотно стоит в координатах
(Offline)
 
Ответить с цитированием
Старый 04.02.2010, 01:38   #5
SKA_DIMKA
ПроЭктировщик
 
Аватар для SKA_DIMKA
 
Регистрация: 03.05.2009
Адрес: г.Волгоград
Сообщений: 136
Написано 32 полезных сообщений
(для 53 пользователей)
Ответ: Странный баг

Нет скорее в функции не учитывается поворот игрока, от этого они и летят не в ту степь) Поварачивай созданную пулю в соответствии с yaw и pitch игрока...
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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