Показать сообщение отдельно
Старый 20.12.2009, 11:32   #21
St.AnGer
Нуждающийся
 
Регистрация: 02.09.2007
Сообщений: 50
Написано 9 полезных сообщений
(для 9 пользователей)
Ответ: Проблема: PhysX и капсула для ГлавГероя.

Через луч будет глючить. Не всегда находит пол под собой. Вот мой код, он конечно тоже не оч хороший, но работает по крайней мере всегда =)

	If xKeyHit(key_jump) Then
		If pxGetContacts(body)>0 Then	
			For i=0 To pxGetContacts(body)-1
				x# = pxContactGetPointX(body,i)
				y# = pxContactGetPointY(body,i)
				z# = pxContactGetPointZ(body,i)	
			Next
			If  x#>pxBodyGetPositionX(body)-.5 And x#<pxBodyGetPositionX(body)+.5 And y#>pxBodyGetPositionY(body)-2.6 And y#<pxBodyGetPositionY(body)-0 And z#>pxBodyGetPositionZ(body)-.4 And z#<pxBodyGetPositionZ(body)+.4 Then
				pxBodyAddLocalForce body,0,pxBodyGetMass(body)/13,0,2
			End If
		End If
	End If

Body - тело игрока. Цифры рядом с координатами pxBodyGetPositionX,Y,Z означают размеры игрока (по оси X и Z +- радиус капсулы игрока, по оси Y позиция капсулы и её нижняя точка). Вообщем координаты в пределах от [-радиус;радиус],[0;-высота капсулы],[-радиус;радиус]
Радиус капсулы желательно указывать несколько меньший, чем есть (если радиус 1, то написать +-.9).
Нижнюю точку чуть чуть ниже (то есть если размер капсулы 2, то нижняя точка должна быть -2.1)

Если что то не понял - пиши
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Leowey (27.01.2011)