Creación de Motor de Plataformas 01
- 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
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.
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.
- 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
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:
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.
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))
Perdonad por lo breve del texto. Conforme vaya avanzando trataré de ir adjuntando también los archivos.
From the deep dream realm.
- 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
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.
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.
Las fotografías de los que viajan, son la cultura de los que se quedan.
- 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
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.
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.
¡Gracias Droman! Por el momento si quieres te lo puedes ir descargando y lo trasteas. Yo os seguiré manteniendo informados.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
- Attachments
-
- Test01.rar
- (1.09 MiB) Downloaded 11 times
From the deep dream realm.
- 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
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.
- 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
Menudo crack! Veo que te has hecho con el código muy rápido.
Si necesitas cualquier cosa, me dices.
Si necesitas cualquier cosa, me dices.
- 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
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!
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 16 times
From the deep dream realm.
- 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
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:
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
- 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
¡¡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".
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.
Las fotografías de los que viajan, son la cultura de los que se quedan.
- 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
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.
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.