Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Tengo una duda en Dark Basic(lo utilizo para una cosa facil.

Iniciado por .::cmd_::., 01 de Enero de 1970, 01:00:00 AM

« anterior - próximo »

.::cmd_::.

                                Como digo en el titulo solamente uso Dark Basic temporalmente mientras aprendo C, lo hago así por ke obtengo resultados fácil y rapidamente.

A lo que iba:
Necesito saber como puedo hacer que un objeto 3D me haga de terreno (p.ej: una calle) y que cualquier objeto 3D ya sea el del jugador o del paisaje tenga colisiones con el terreno. Cuando digo lo de las colisiones me refiero a que no se caiga al vacío el coche, suba los bordillos, baches, etc... pero que las paredes y los muros no los suba (lógico). Tambien que en as cuestas la velocidad del objeto diminuya.
No pretendo que vosotros me agais el programa sino que solo me expliqueis como hacerlo y los comandos a utilizar.

Este es un código que me pasó un colega con lo mismo ke yo kiero pero no es perfecto ni de lejos (sugun dice el en cuestas el coche se vuelve loco). Este es el código miradlo, retocadlo, mejoradlo, decidme que falla , etc...porfavor:

rem COLISIONES******************
rem el objeto 1 es el coche
rem el objeto 666 es la caja del mismo tamano q el coche para comprobar si puede subir un bordillo una cuesta etc..(igual q en ejemplo de jDIVe)
rem y el objeto 2 es el escenario, un 3ds

x#=object position x(1)
y#=object position y(1)
z#=object position z(1)
rety#=object position y(1)

rem esto hace que si cae encima d la pista no la traspase y caiga al infinito...
if object position y(1)<>last_y# and (object hit(1,2) or object collision(1,2))
y#=oldy#
position object 1,x#,y#,z#
position object 666,x#,y#+maxstep#,z#
endif

rem esto comprueba si la pared q tiene delante es bajita o alta para colisionar o subir...

if (object position x(1)<>last_x# or object position z(1)<>last_z#) and (object hit(1,2) or object collision(1,2))
rem si la caja colisiona tb, es q es una pared
if object hit(666,2) or object collision(666,2)
rem velocity_wc_y# es la velocidad en las z# ... (si! mi codigo es un lio!)
throttle#=0
velocity_wc_x#=velocity_wc_x#*-1
velocity_wc_y#=velocity_wc_y#*-1
x#=oldx#
z#=oldz#
else
yjump=1
endif
endif

if yjump=1
y#=y#+gravedad
position object 1,x#,y#,z#
position object 666,x#,y#+maxstep#,z#
if object hit(1,2)=0 and object collision(1,2)=0
yjump=0
endif
endif

if rety#<>y#
position object 1,x#,rety#,z#
if object hit(1,2)=0 and object collision(1,2)=0
position object 666,x#,rety#+maxstep#,z#
else
position object 1,x#,y#,z#
endif
endif

last_x#=object position x(1)
last_y#=object position y(1)
last_z#=object position z(1)

REM *******************************

Por favor ayudadme!!!!!
                               

Lord Trancos

                                erhhh... no se te ha pasado por la cabeza q tal vez no sea que pasamos de ti, sino q nadie (de los que escriben a menudo) usa (o domina) el darkbasic.... :lengua:                                
i>SaludoteZ de Lord Trancos!
http://www.dxlab.tk - http://dxlab.host.sk - programación de DirectX con Delphi.

.::cmd_::.

                                Pues no, la verdad, no se me habia pasado por la cabaza que no supieseis nada de Dark Basic. Estoy decepcionado, entre las "manias" ke teneis todos al Dark Basic y ke lo mejor ke hay es el VC++...

Yo no soy experto, solo kería pasar un buen rato haciendo mis "cosillas", y ya ke estoy aprendiendo a programar de verdad (me refiero a lenguajes estandard), el Dark Basic me da resultados rapidamente y en teoría facilmente.
También podría haber hecho esas cosas ke hago con flash (suena raro hacer juegos 3D con flash...).

Todo lo dicho, lo que yo he dicho, dicho está. Si hay alguien ke seguro ke lo hay ke sepa de Dark Basic ke me heche un cable.                                

Bocabits

                                Si quieres aprender a programar juegos, ese tipo de problemas tienes que resolvertelos tu mismo. Ahi esta la gracia de hacer un juego :sonriendo:                                

Lord Trancos

                                weno,... es cierto,... a muchos nos molestan (o mas bien nos repatean) los lenguajes de programacion a prueba de "dummies" (vease VB, DIV, BarkBasic...) donde los ideales son: "aqui podras hacer lo que quieras sin apenas saber programar", "trankilo que no te vas a tener que pelear con los punteros", "en 5 minutos te montas un juego o una aplicacion de bases de datos q te cagas"... etc.

del mismo modo que me parece mal que haya mucha gente usando ordenadores que no tienen ni puta idea de que es un archivo,... me parece "mal" que se venda la programacion como algo que no requiere esfuerzo (mental, se entiende),...

ademas, ese tipo de programas generan malos habitos; como por ejemplo querer conseguir resultados rapidamente y con poco esfuerzo...

las colisiones son un tema muy complejo, y depende mucho de el grado de realismo que quieras y el tipo de juego que estes haciendo, yo todavia no he conseguido implementar (algo decente) a mi "engine",... :triste:
                               
i>SaludoteZ de Lord Trancos!
http://www.dxlab.tk - http://dxlab.host.sk - programación de DirectX con Delphi.

Ithaqua

                                Bocabits: ¿Para que estan estos foros entonces?

Lord Trancos: Te noto un pelín celosillo. Nada de lo que has mencionado te debería de molestar -y mucho menos repatear-.
DIV, DarkBasic y VB estan ahí para lo que están.

                               
thaqua^Stravaganza
http://ithaqua.stravaganza.org

Bocabits

                                "Bocabits: ¿Para que estan estos foros entonces? "

¿Para meterse con Emotion? xDDD
Es broma. Pero yo estoy con Lord. Estos programas permiten a alguien que no ha programado en su vida hacer un pedazo juego en un momento (lo que no esta nada mal). Pero a la que necesitan algo que el programa no les ofrece, o intentan algo que no han visto en ningun codigo se ahogan enseguida.
Estan acostumbrados a encontrarlo todo hecho en lugar de pensar en como resolverlo, y darse cuenta que hacer un juego es algo mas que "ripear" codigo ajeno.
                               

Ithaqua

                                Ah, ya veo. Estais celosos los dos.
Aparte de que la frase "Estos programas permiten a alguien que no ha programado en su vida hacer un pedazo juego en un momento" es absolutamente falsa, yo no veo problema en que haya gente que programe usando DarkBasic o DIV. ¿Que problema hay?
                               
thaqua^Stravaganza
http://ithaqua.stravaganza.org

Emotion

                                Para Bocabits:

Te agradeceria que esa clase de pensamientos o chistes a titulo personal los guardaras para mejor ocasion, ya que sinceramente creo que si eso lo hubiera dicho Ithaqua, todavia tendria sentido, pero que lo digas tu, que no has tenido vela, me parece poco apropiado

Con respecto al tema del topic, yo estoy con Ithaqua, ya que la programacion de videojuegos no solo esta ligada a C/C++, a ASM, a Delphi, o cualquier lenguaje para la creacion de contenidos multimedia.

En mi opinion, los entornos como DIV o DarkBasic sirven como un pequeño trampolin hacia la programacion de juegos en plan profesional, ya que, que yo sepa (aunque puedo estar equivocado), no hay en el mercado ningun juego hecho con DIV o DarkBasic, sin embargo son muy buenos para obtener una primera impresion de lo que conlleva la programacion de juegos.

Aparte de eso, no mucho mas que decir, excepto el hecho de que esta no es mas que MI OPINION PERSONAL. No deseo que esto se convierta en un nuevo objeto de discusion en el foro. Nada mas

Un Saludo

_________________
Julio Meca
ALPHA SOFTWARE

[ Este Mensaje fue editado por: Emotion el 2002-04-28 22:34 ]                                
G3: Get the Power!

.::cmd_::.

                                Eso si, si, es eso lo ke yo intentava decir y lo ke ya me han dicho. Me refiero a lo de Emotion cuando dice eso de "los entornos como DIV o DarkBasic sirven como un pequeño trampolin hacia la programacion de juegos en plan profesional".
Si yo no hubiese tocado nunca Dark Basic, ahora, al ver todo lo ke tengo ke aprender de C (estoy haciendo un curso) me hubiese desplomado.

Espero ke me entendais.
Otra cosa más, yo no soy ese tipo de personas ke no sabe nada de ordenadores y todo lo ke lo envuelve. Yo se lo ke es un archivo y un programa y se lo ke se tiene ke hacer para desarrollarlo, digo esto porke hay gente ke piensa ke los programas y juegos se hacen con solo un chasquido de dedos...                                

Lord Trancos

                                Ithaqua,... veras,... mi trabajo consiste en arreglar lo que otros rompen; me refiero a los tipicos usuarios que no saben lo que es un PC, ni tienen ganas de saberlo sino que simplemente quieren usarlo.

Esa mentalidad es la que me repatea,... y todo lo que nazca con esa mentalidad ("no hace falta entender para saber usar").

Me da igual que sean SO, lenguajes de programacion o lo que sea,...

Yo no he dicho (que recuerde) que con el DIV, DarkBasic, VB y demas no se puedan hacer juegos buenos (y divertidos), sino que no me gustan esos lenguajes en si. Y que en mi opinion crean malos habitos.

De hecho lo mismo ocurre con los componentes del Delphi,... a veces me paso por los foros de Delphi y la gente en lugar de preguntar "como hago esto?" preguntan "donde me puedo bajar un componente para hacer esto?"....

Eso si,... tampoco es mi intencion que todos tengamos que reinventar la rueda cada vez que queramos hacer un programa,...  :riendo:

PD: .:_cmd:. en ningun momento he puesto en duda que no sepas lo que es un archivo. Era solo un ejemplo.

[ Este Mensaje fue editado por: Lord Trancos el 2002-04-28 23:47 ]                                
i>SaludoteZ de Lord Trancos!
http://www.dxlab.tk - http://dxlab.host.sk - programación de DirectX con Delphi.

Ryuchan

                                A mi siempre me ha gustado reutilizar codigo ajeno, y ojala hubiera tenido un DIV cuando empeze a programar juegos y no me salia nada. Pero eso no quita que esos programas creen malos habitos. No creo que sean un trampolin, sino mas bien una forma de pasar el rato. Dices que si empiezas con C desde el principio te desplomas en ver todo lo que hay que hacer, no?
Pues peor sera cuando quieras meterte en C y estes acostumbrado a obtener resultados en 2 tardes. Mas fuerte sera el batacazo, no?
Fijo que en una semana ya vuelves al Dark Basic.                                
he fight is everything

Drácula

                                Para hacer lo que comentas de las cuestas, debes tener en cuenta la normal del plano que conforma la cuesta. Si no sabes que es la normal, pues creo que debes empezar por buscar tutoriales sobre análisis vectorial.
Pero si lo sabes, pues la normal te dice la inclinación que tiene que tener tu coche, por que el coche siempre va paralelo al suelo(bueno, al empezar la cuesta no del todo, pero eso lo dejamos por ahora)

Como resolverlo en DarkBasic es otra historia, yo no tengo ni idea de este lenguaje y no puedo ayudarte.

                               
ltimas mejoras en Merlín: Multitextura.Control y generación automática de LOD.Importa ASE y X. Frustum Clipping por BB.Render añadido de wireframe y del BB.Animaciones por interpolación.Animaciones de textura...
Actualmente:Octree y jerarquías

Emotion

                                Para Dracula:

Yo creo que lo mas adecuado en este caso seria diseñar un sistema de interaccion fisica, donde el coche, por efecto de la gravedad, fuera pegado no al suelo, sino a la superficie que tiene debajo.

De esta forma, el coche no subiria por muros y paredes, ya que la gravedad se lo impediria, aparte de que si se aplican conceptos como choque elastico/inelastico se puede tambien simular un posible trompazo contra el muro.

De todas formas, y como el ha preguntado sobre hacer que un objeto (un terreno) haga de pista (o al menos eso he entendido) y haga las colisiones normales, depende de como lo este implementando. Digo esto por una razon, y es que si simplemente se usara el criterio de ajustar la posicion o la orientacion axial del coche en funcion del vector normal de la superficie, y tuvieramos una cuesta de, pongamos por caso, 3 segmentos, al no ser una cuesta suave, y en mi opinion, al pasar el coche de una superficie a otra, al cambiar el vector normal que rige el segmento que esta pisando, el coche cambiaria su orientacion axial de una manera un poco brusca... al menos yo lo veo asi, no se como lo has planteado tu... :sonriendo:

Un Saludo
                               
G3: Get the Power!

Drácula

                                A Emotion.

Ya conozco el tema, porque analicé el problema hace un año cuando quise hacer un juego de carreras. Yo le he dicho a cmd sólo el primer paso, después ya se dará cuenta de lo que tu dices, aunque..¡es bastante complejo!                                
ltimas mejoras en Merlín: Multitextura.Control y generación automática de LOD.Importa ASE y X. Frustum Clipping por BB.Render añadido de wireframe y del BB.Animaciones por interpolación.Animaciones de textura...
Actualmente:Octree y jerarquías






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.