logo LWP
Comunidad de Programadores
Crear cuenta
Recordar contraseña
Recordar contraseña en este navegador
Cursos Biblioteca de Temas Preguntas y Respuestas Buscador para Programadores Drivers Solicitudes para Programadores Programas y Utilidades Ofertas de Trabajo

DarkBASIC - Ayuda con collision

Volver
Filtrado por todos los mensajes
 Imprimir facebook  twitter 
Vistas:
Mensajes realizados anteriormente (No estaban la última vez que entraste)
 Ayuda con collision
CcPirat (07/06/2006 02:52:03)
4.233 visitas
2 respuestas
 RE:Ayuda con collision
Jhon Pro (26/10/2006 19:44:47)
 RE:Ayuda con collision
nelson (08/04/2007 17:46:28)
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 al autorSubir
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 el mensajeSubir
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 el mensajeSubir