Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación, y ofrecer contenidos y publicidad de interés.
Al continuar con la navegación entendemos que se acepta nuestra política de cookies.
Iniciar sesión Cerrar
Correo:
Contraseña:
Entrar
Recordar sesión en este navegador
Crear cuenta

DarkBASIC - Ayuda con collision

Vista:
Me gusta: Está pregunta es útil y esta clara
0
No me gusta: Está pregunta no esta clara o no es útil
 
Asunto:Ayuda con collision
Autor:CcPirat (2 intervenciones)
Fecha:07/06/2006 02:52:03
Hola soy principiante con el darkbasic profesional, no se que version es exactamente; bueno en fin estoy tratando de hacer que dos objetos que cree en el 3d stuio max y que luego converti a .X se choquen, pero no lo logro, siempre pasa un objeto por ensima del otro y no se que haer; he tratado con el automatic object collision, object collision; y no se que hacer: ayuda por favor; todo esta convertido a .X hasta el mundo en que lo estoy moviendo.
Responder Subir
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:RE:Ayuda con collision
Autor:Jhon Pro (2 intervenciones)
Fecha:26/10/2006 19:44:47
Que Tal. Lo que pasa es que la collision la tienes que programar desde cero, las funciones que mencionas solo te ayudan a detectar si dos o mas objetos dentro del mundo 3d se están sobre poniendo.

Como ejemplo te pongo que una colisión muy sencilla sería algo como (esto es solo un ejemplo en pseudo código):

' Si detecta colision con pared, le obligas al jugador que su posición sea la anterior y que no siga avanzando, esto solo aplica para colison estatica

jugadorX#=object position x(jugador)
jugadorY#object position y(jugador)
jugadorZ#object position z(jugador)

if object collision(jugador,pared)=1
position object jugador, jugadorX#, jugadorY#, jugadorZ#
endif

' Si quieres una colision de deslizamiento seria algo mas o menos así

jugadorX# = object position x(jugador)
jugadorY# = object position y(jugador)
jugadorZ# = object position z(jugador)

if object collision(jugador,pared)=1
if object position x(jugador) <= object position x(pared) then position object jugador, jugadorX# -1, jugadorY#, jugadorZ#
if object position x(jugador) >= object position x(pared) then position object jugador, jugadorX# +1, jugadorY#, jugadorZ#
if object position y(jugador) <= object position x(pared) then position object jugador, jugadorX# , jugadorY# -1, jugadorZ#
if object position y(jugador) >= object position x(pared) then position object jugador, jugadorX# , jugadorY# +1, jugadorZ#
if object position z(jugador) <= object position x(pared) then position object jugador, jugadorX# , jugadorY# -1, jugadorZ#
if object position z(jugador) >= object position x(pared) then position object jugador, jugadorX# , jugadorY# +1, jugadorZ#
endif

Te reitero que esto es un pseudo codigo pero que tal vez te pueda servir, la verdad es que el codigo seria un poco mas complicado pues depende de tus necesidades de colisión, numero de objetos, etc. en donde tendrias que meter los comandos de interseccion y vectores....

Lo que te recomiendo es que pruebes dll o herramientas ya hechas para este proposito, ej Newton, Havok, etc. las cuales puedes implementar y que son de mucha utilidad pero ahí si requeririas un poco de mas conocimiento en DBPro y C++ para poder complementarlas.

Entra a la pagina de DBPro, ahi seguramente encontraras ejemplos de como hacer esto.
Comentar Subir
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:RE:Ayuda con collision
Autor:nelson (1 intervención)
Fecha:08/04/2007 17:46:28
como haria en seudo codigo y diagrama de flujo hacer una taza de te y tambien un palindromo
Comentar Subir