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=11838)

Raiter 03.02.2010 20:24

Странный баг
 
Баг заключается в следующем. Есть функция создания пули 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. Несколько пуль правильно, несколько нет.

Чо за ...?:)

impersonalis 03.02.2010 20:32

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

Raiter 03.02.2010 20:36

Ответ: Странный баг
 
Цитата:

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

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

Координата Y у Player\Entity при вызове CreateBullet таки немного скачет. Отключил функцию гравитации для плеера и проблема пропала. Значит дело в коллизии плеера с картой...

H@NON 03.02.2010 21:05

Ответ: Странный баг
 
перемещай игрока после того как он выстрелит, либо вызывай создание пуль после UpdateWorld(), особенно часто бывает это для камеры и кажется что она неплотно стоит в координатах

SKA_DIMKA 04.02.2010 01:38

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


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

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