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

Delta_Q 17.10.2007 01:02

Странная работа Колизии.
 
Ситуация следующая:
Есть сцена где имееться поверхность земли и моделька игрока стоящаая на этой поверхности.
Кализия заданна как Collisions(C_MEN,C_TERRA,2,3) на Модельку игрока действует сила тяготения.
Но возникает интересная ситуация:
Когда ФПС достаточно много (около 200-1000) все работает отлично.
Но стоит тока упасть в сцене ФПСсам ниже 100 срау координата "У" медленно как зыбучий песок ползет вниз какбудто по долям микронов объект вплавяетсья в поверхность земли. Хоят при этом оделька самого объекта стои на месте а вот показатели координат по "У" ползут вниз.

С чем это может быть связано и как это выличить?

Delta_Q 17.10.2007 01:07

Re: Странная работа Колизии.
 
Хотя с тем как это решить я знаю, я это решил просто поставив поверку коснулся ли игрок земли то обсчет сил тяготения прекращяеться, пока игрок не прыгнит или не оторветсья от земли. Но почему так проиходит?

stone_evil 17.10.2007 04:29

Re: Странная работа Колизии.
 
Применимо это к твоей ситуации или нет, смотри сам, но советую каждый цикл выводить на экран значение коллизии, и увидишь интересное - не каждый раз, когда есть коллизия, это значение будет true.

Damp 19.10.2007 11:01

Re: Странная работа Колизии.
 
Просто при низком фпс такой эффект лучше заметен. Ты двигаешь модель вниз, а UpdateWorld возвращает ее на место коллизии, но координаты не сразу становятся фактическими. Выход как и сказал автор:
Vy#=Vy-g
If EntityCollided(model,ground) Then Vy=-Vy*K_uprugost
If Abs(Vy)>0.001 Then TranslateEntity model,0,Vy,0

Delta_Q 23.10.2007 20:03

Re: Странная работа Колизии.
 
В цикле расчета притяжения я поставил проверку на колизию. И как показывает практика что EntityCollided(model,ground) не всегда возвращает результат. т.е. то указыват что есть колизия то нет.

Мне это принципиально т.к. у меня сетивые пакеты данных об положении игркоа идут при условии что игрок соврешает какието действия и эти пакеты передаються на сервер. Соответсвенно если игрок стоит и EntityCollided(model,ground) возвращает указатель на колизию то данные не посылаються. Если игрок прыгнул то идет передача данных. Но т.к. этот параметр не стабилен и он маргает то данные начинают идти. это не есть гуд.

tormoz 23.10.2007 23:14

Re: Странная работа Колизии.
 
Отслеживай изменения по нажатиям клавишь и движению мыши


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

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