Странный баг
Баг заключается в следующем. Есть функция создания пули 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. Несколько пуль правильно, несколько нет. Чо за ...?:) |
Ответ: Странный баг
покажи код CreateBullet(x#,y#,0)
Возможно, пуля не может быть пермещена в требуемые координаты (отсюда и спорадичность проявления бага - завист от того есть ли доступ к игроку по прямой линии из координат создания [0,0,0]), т.к. тип коллизии для неё назначается перед позиционированием. Если это так, то измени порядо указанных команд. |
Ответ: Странный баг
Цитата:
Вот только что опытным путем узнал где собака зарыта. Координата Y у Player\Entity при вызове CreateBullet таки немного скачет. Отключил функцию гравитации для плеера и проблема пропала. Значит дело в коллизии плеера с картой... |
Ответ: Странный баг
перемещай игрока после того как он выстрелит, либо вызывай создание пуль после UpdateWorld(), особенно часто бывает это для камеры и кажется что она неплотно стоит в координатах
|
Ответ: Странный баг
Нет скорее в функции не учитывается поворот игрока, от этого они и летят не в ту степь) Поварачивай созданную пулю в соответствии с yaw и pitch игрока...
|
Часовой пояс GMT +4, время: 00:11. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot