Creación de Motor de Plataformas 01

Post Reply
User avatar
Oniric-Factor
Posts: 10
Joined: Mon Oct 04, 2021 9:14 am
Has thanked: 1 time
Been thanked: 9 times
Contact:

Creación de Motor de Plataformas 01

Post by Oniric-Factor »

Saludos a todos.

Al final parece que estoy empezando a tener un poco de tiempo y he querido empezar por crear un motor básico para hacer juegos de plataforma.

Mi idea es ir publicando aquí los avances junto con el código pertinente, para que podáis verlo y usarlo, modificarlo, proponer o discutir lo que sea.

Será algo parecido a una memoria, con la diferencia de que todos los presentes pueden participar, ya sea preguntando o aportando.
Last edited by Oniric-Factor on Thu Feb 10, 2022 11:21 am, edited 1 time in total.
From the deep dream realm.
User avatar
Oniric-Factor
Posts: 10
Joined: Mon Oct 04, 2021 9:14 am
Has thanked: 1 time
Been thanked: 9 times
Contact:

Re: Creación de Motor de Plataformas 01

Post by Oniric-Factor »

Por el momento he visto varios de los ejemplos disponibles aplicando el motor de físicas y he observado que todos adolecen del mismo problema: no controlan cuando el personaje está pisando realmente el suelo.

Lo lógico sería chequear el valor de la velocidad vertical que está aplicando el motor de físicas, siendo cero cuando el objeto se encuentra posado sobre un sólido.

Preguntando a Alberto, me mencionaba de usar la función GetPhysicsVelocity, que devuelve una matriz con los valores de los vectores de velocidad X e Y en los indices 0 y 1 respectivamente.

Por el momento he tratado de utilizarla en VRBASIC de la siguiente manera:

Code: Select all

DIM pvel(2)
....
pvel = _GCALL(sp1, "GetPhysicsVelocity")
_GLCALL(db1,"SetText",pvel(1))
Sin embargo, por el momento siempre me marca cero. Seguramente este aplicando mal el valor de retorno.

Perdonad por lo breve del texto. Conforme vaya avanzando trataré de ir adjuntando también los archivos.
From the deep dream realm.
User avatar
droman
Posts: 263
Joined: Mon Oct 04, 2021 9:09 am
Location: Leganés (Madrid)
Has thanked: 35 times
Been thanked: 80 times

Re: Creación de Motor de Plataformas 01

Post by droman »

Me pillo un sofá, una bolsa de palomitas y me quedo pendiente de cada paso que des.

Por supuesto, en todo cuanto pueda ayudar, dímelo. No soy bueno programando video juegos, no nos vamos a engañar, no lo he hecho en la vida (soy más de backend y frontend).... pero a ganas no me vence nadie :)

Así, para empezar... intentaré usar la función en VRSCRIPT y te comento si saco algo positivo.
La muerte, segura de su victoria nos da toda la vida de ventaja.
Las fotografías de los que viajan, son la cultura de los que se quedan.
User avatar
Oniric-Factor
Posts: 10
Joined: Mon Oct 04, 2021 9:14 am
Has thanked: 1 time
Been thanked: 9 times
Contact:

Re: Creación de Motor de Plataformas 01

Post by Oniric-Factor »

Problema solucionado. Con la última versión DEVELOPER ya es posible asignar correctamente los valores de la lista a un array de VRBASIC. Por el momento ya vamos teniendo la física básica de un plataformas implementada.

El siguiente paso será aplicar un scroll y hacer diferentes pruebas para determinar cuales son los mejores métodos para implementar los objetos sólidos del nivel.

Por el momento en el código puede verse (inhabilitado) un scroll sencillo, pero el centrado no es el mas adecuado, ya que se basa en las coordenadas del jugador, cuando sería mas preciso anclarlo directamente al propio objeto GLSprite.

Conforme vaya avanzando iré puliendo mas el código. Por el momento esta basado en algunos ejemplos de los que me habíais pasado, que me ha estado viniendo muy bien para ver como iba esto.
Por supuesto, en todo cuanto pueda ayudar, dímelo. No soy bueno programando video juegos, no nos vamos a engañar, no lo he hecho en la vida (soy más de backend y frontend).... pero a ganas no me vence nadie :)
¡Gracias Droman! Por el momento si quieres te lo puedes ir descargando y lo trasteas. Yo os seguiré manteniendo informados.
Attachments
Test01.rar
(1.09 MiB) Downloaded 12 times
From the deep dream realm.
User avatar
Oniric-Factor
Posts: 10
Joined: Mon Oct 04, 2021 9:14 am
Has thanked: 1 time
Been thanked: 9 times
Contact:

Re: Creación de Motor de Plataformas 01

Post by Oniric-Factor »

Actualizo el hilo. El motor ya implementa el Scroll y he mejorado un poco las físicas. En los últimos cambios se puede ver como se gestionan los punteros a los objetos entre VRBASIC y las librerias GL.
Attachments
Test_v0.2.rar
(1.09 MiB) Downloaded 13 times
From the deep dream realm.
User avatar
efraimsangil
Site Admin
Posts: 209
Joined: Mon Sep 27, 2021 10:42 am
Has thanked: 152 times
Been thanked: 88 times

Re: Creación de Motor de Plataformas 01

Post by efraimsangil »

Menudo crack! Veo que te has hecho con el código muy rápido.

Si necesitas cualquier cosa, me dices.
User avatar
Oniric-Factor
Posts: 10
Joined: Mon Oct 04, 2021 9:14 am
Has thanked: 1 time
Been thanked: 9 times
Contact:

Re: Creación de Motor de Plataformas 01

Post by Oniric-Factor »

Saludos a todos.

Publico una nueva actualización con bastantes avances respecto a la anterior versión.

- Físicas ajustadas.
- Scroll enlazado al jugador
- Sistema de colisiones implementado
- Inmunidad y efectos al recibir impactos

Aun faltan bastantes cosas, como la asignación de todos los sprites conforme a las acciones que se están ejecutando, aunque ya lo tengo mas o menos preparado. También faltan la música, los efectos de sonido... los iré añadiendo a la plantilla/motor en próximas actualizaciones.

Actualmente tenemos un problema y es que parece que la función LINKCAMERA no funciona como debiera, ya que al desplazarse mas de unos 1200pixeles, el foco de la cámara se pierde y deja de seguir al personaje.

Se lo he comentado a Alberto, así que espero que pronto esté solucionado.

Un detalle importante sobre los gráficos que se ven en el ejemplo: NO SON LIBRES. Podéis usarlos para vuestros experimentos, pero por favor, no los incluyáis en ningún juego.

Durante este tiempo también he desarrollado una aplicación para generar los objetos solidos y dañinos del escenario, aunque aún está en fase beta. Mas adelante espero poder liberarla.

¡Seguimos en contacto!
Attachments
Test_v0.4.rar
(193.95 KiB) Downloaded 17 times
From the deep dream realm.
User avatar
efraimsangil
Site Admin
Posts: 209
Joined: Mon Sep 27, 2021 10:42 am
Has thanked: 152 times
Been thanked: 88 times

Re: Creación de Motor de Plataformas 01

Post by efraimsangil »

He estado echando un ojo al código y veo que usas dos sheets para el movimiento de correr, uno mirando a la derecha y otro a la izquierda. Esto no es necesario si se usa la función: _GLCALL(s2,"SetHFlip",0)

Si cambias la línea 74 por esto, lo tienes resuelto. Usas un sólo sheet para ambos movimientos:

Code: Select all

	if PVEL(1)=0 and XF<>0 then if XF>0 then _GLCALL(sp1, "setanimation","run"):_GLCALL(sp1,"SetHFlip",0) else _GLCALL(sp1, "setanimation","run"):_GLCALL(sp1,"SetHFlip",1) 'Animacion Carrera
User avatar
droman
Posts: 263
Joined: Mon Oct 04, 2021 9:09 am
Location: Leganés (Madrid)
Has thanked: 35 times
Been thanked: 80 times

Re: Creación de Motor de Plataformas 01

Post by droman »

¡¡Joder que gusto!!

Ya era hora que alguien se diese cuenta de que aunque no es obligatorio.... SE PUEDEN USAR ESPACIOS Y SALTOS DE LINEA. Que gustazo da ver las cosas separadas y bien presentadas... Para los que no estamos acostumbrados a escribir de esa manera todopegaosinespacios, se gradece, por que el código es mucho más legible y se puede entender.

Te felicito, no sólo por tu currzado, si no por facilitar las cosas y no "ofuscarlas".
La muerte, segura de su victoria nos da toda la vida de ventaja.
Las fotografías de los que viajan, son la cultura de los que se quedan.
User avatar
Oniric-Factor
Posts: 10
Joined: Mon Oct 04, 2021 9:14 am
Has thanked: 1 time
Been thanked: 9 times
Contact:

Re: Creación de Motor de Plataformas 01

Post by Oniric-Factor »

Gracias, a mi me da tela de coraje ver un código gorrino XD

Acabo de comprobar que el fallo del LINKCAMERA está corregido y he estado añadiendo un par de cosas. A ver si pronto puedo publicar una nueva versión del motorcillo.
From the deep dream realm.
Post Reply