Test de mi gameEngine en processing.

Todo aquello que no está relacionado con Gemix Studio ni con la programación DIV en general.

Re: Test de mi gameEngine en processing.

Postby erkosone » Sat Jul 14, 2018 9:52 am

Apuntado queda!

Por cierto.. que agonia he pasado con el maldito collisionType().. joer esto de hacerlo a base de eventos es un royo.. menuda mierda XD.. menos mal que ya puedo usarlo como se usa en Div/gemix.. de verdad que no me gusta nada la filosofia de programacion de las librerias de fisica.. demasiado genericas y para hacer juegos son horribles..

La verdad es que integrar bien una lib de fisica con un engine de juegos tiene un curro bastante simpatico jeje.. pero ya me funciona bien :D

Ahora a sentarme a terminar el ejemplo del juego de naves, que ya puedo usar collisionType()!!
User avatar
erkosone
 
Posts: 10392
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: Test de mi gameEngine en processing.

Postby erkosone » Sat Jul 14, 2018 10:03 am

Hokuto te dejo un zip para que lo estudies, es super simple, estoy haciendo el video explicativo del collision type y del getSpriteById() que son la hostia!

te dejo el zip por si quieres trastear o mirartelo, el video esta de camino ;)
You do not have the required permissions to view the files attached to this post.
User avatar
erkosone
 
Posts: 10392
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: Test de mi gameEngine en processing.

Postby Hokuto7 » Sat Jul 14, 2018 10:53 am

Si,te doy la razon erkozone,los motores de fisicas son un rollo y en vez de fasilitarte las cosas te las complican.Si pudiera programar sin motor de fisicas,ya hubiera terminado de crear un minijuego.Presisamente por el motor de fisicas no utilizo unity,porque me parece un rollo la programacion,pero para las 3d es muy util.

Por cierto,estuve probando ayer el ejemplo que me pasastes y le meti mi codigo de mi ejemplo para ver como iba,y sigue teniendo los mismos problemas que te he comentado antes,ademas ahora se a unido otro problema,y es que cuando cargue mi ejemplo en el navegador mi nave dispara para abajo.

He tenido que ponerle en su angulo -90 para que funcione bien,ya no se ni que poner para que no tenga mas fallos.

Voy a descargarme el ejemplo,pero esperare a ver el video porque ya no me aclaro.
User avatar
Hokuto7
 
Posts: 855
Joined: Mon Aug 28, 2017 10:14 am

Re: Test de mi gameEngine en processing.

Postby erkosone » Sat Jul 14, 2018 4:54 pm

User avatar
erkosone
 
Posts: 10392
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: Test de mi gameEngine en processing.

Postby OskarG » Sat Jul 14, 2018 8:42 pm

Hola erkos hay alguna manera de saber en tu engine cuando diablos se utiliza la palabra this... Cuando esté más avanzado tu proyecto comenzaré a trastear con el ...si te sirve de inspiración mira amulet lua ...es otro lenguaje pero muy sencillo de asimilar.
User avatar
OskarG
 
Posts: 571
Joined: Tue Jan 12, 2010 2:12 am

Re: Test de mi gameEngine en processing.

Postby erkosone » Sat Jul 14, 2018 9:29 pm

Hola oscar! Pues esto del this es por que no has pillado bien el concepto de OOP en javaScript, no es algo de mi framework, es algo nativo de JS y java por ejemplo.
Te lo explicare con mas detalle en alguno de los siguientes tutoriales, estoy pensando en el siguiente mini juego demo y publicaré la lib oficialmente para el IDE de processing.
Asó no hará ni siquiera falta descargar el braquets.

Cuando estas declarando o "creando" el sprite no hace falta y no te funcionaria un THIS por que en ese momento y en ese SCOPE this no hace referencia a nada.. this se usa sobre todo dentro de frame() ya que frame() es llamado por el core desde cada Sprite, y en ese SCOPE si que hace referencia al sprite que lo llama ;)

Así que intenta asimilar 'this' como 'ID' de Div/gemix, desde el loop de cualquier sprite/process de gemix puedes hacer esto y es totalmente equivalente:
z = 1;
ID.z = 1;

pues desde gameLibZero si haces:
z = 0; te dara un error por que la variable z la estas asimilando como "global", tienes que decirle que es la Z de ese proceso/Sprite haciendolo así:
this.z = 0;

Creo que el siguiente minijuego demo sera un RPG y ya estaran los 3 estilos clasicos para terminar y publicar :)
User avatar
erkosone
 
Posts: 10392
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: Test de mi gameEngine en processing.

Postby Hokuto7 » Sun Jul 15, 2018 11:04 am

Hostia!!,dos videos, de lujo,me los descargo y me pongo con ello. :claphands:

Mirate el ultimo ejemlo que te pase y fijate en los disparos del enemigo y tambien fijate que cuando mi nave colisiona con el enemigo le puse que parpadeara por unos segundos y luego deje de parpadear,pero hay algunas veces que funciona y otras no.

https://drive.google.com/file/d/1mXBTRK ... sp=sharing
--------------------------------------------------------------------------------------------------------------

OskarG,no hace falta que pongas el this,puedes poner el nombre que le des al objeto,es lo que yo hago,ejemplo.

var jugador = new Sprite():
jugador.x
jugador.y
O puedes hacer esto otro.

var jugador = new Sprite():
this.x
this.y
Last edited by Hokuto7 on Sun Jul 15, 2018 11:10 am, edited 2 times in total.
User avatar
Hokuto7
 
Posts: 855
Joined: Mon Aug 28, 2017 10:14 am

Re: Test de mi gameEngine en processing.

Postby CicTec » Sun Jul 15, 2018 11:06 am

OskarG wrote:Hola erkos hay alguna manera de saber en tu engine cuando diablos se utiliza la palabra this... Cuando esté más avanzado tu proyecto comenzaré a trastear con el ...si te sirve de inspiración mira amulet lua ...es otro lenguaje pero muy sencillo de asimilar.

THIS en los lenguajes OOP se usa como identificador de la instancia de la clase, cuando creas una instancia te devuelve un ID que es un puntero a la zona de memoria donde se aloca dicha instancia, THIS tiene este indiricio (ID) asi que si usas THIS.FIELD puedes acceder a los miembros de la clase (privados, publicos, etc...)

El utilizo mayor de THIS es para identificar y usar las variables locales en los metodos que declaren variables con el mismo nombre o para devolver el ID con algun metodo, hacemos un ejemplo simple:
- Defines una clase Player.
- Declaras unas variables locales de la clase: X y Y, que identifican la posicion en pantalla del player.
- Defines un metodo "move" que permite mover el player, que a su vez tiene dos parametros: INT x, INT y (prototipo = int move(int x, int y))

Por ende lo que haces normalmente en OOP es (C++, C#, Java y similares):
Source Code (C++) [ Download ] [ Hide ]
  • Player player; // variable que memoriza el ID de la instancia:
  •  
  • player = new player(); // se crea la instancia y se memoriza su ID en la variable
  •  
  • player.move(10, 10); // llamamos el metodo "move" para mover el player
  •  
  • ....
  •  
  • class Player {
  • private:
  •   int x, y; // datos locales de la clase
  •  
  • public:
  •   int move(int x, int y) {
  •     this->x = x;
  •     this->y = y;
  •   }
  •  
  •   Player& getID() {
  •     return *this;
  •   }
  • }
  •  

Como puedes notar en la definicion del metodo de la clase, los parametros tienen los mismos nombres de las locales asi que para poderlos usar es necesario "referenciar" las locales con algun ID, el segundo metodo "getID", devuelve el ID de la instancia de la clase, todo esto lo hace la palabra THIS.

En DIV/Gemix THIS es equivalente a ID para los procesos y en Gemix para los metodos, tambien Gemix include THIS como palabra clave nueva, la unica diferencia que hay que considerar en el lenguaje DIV respecto a los lenguajes OOP tradicionales es que si creas una instancia de un proceso y esto declara parametros que ya son variables locales, la asignacion es directa y por ende "this.x = x" o "id.x = x" en su cuerpo es redundante.

Espero que la explicacion te sea util.
User avatar
CicTec
 
Posts: 16016
Joined: Thu Jul 31, 2008 10:18 pm

Re: Test de mi gameEngine en processing.

Postby erkosone » Sun Jul 15, 2018 11:47 am

Hokuto7 wrote:Hostia!!,dos videos, de lujo,me los descargo y me pongo con ello. :claphands:

Mirate el ultimo ejemlo que te pase y fijate en los disparos del enemigo y tambien fijate que cuando mi nave colisiona con el enemigo le puse que parpadeara por unos segundos y luego deje de parpadear,pero hay algunas veces que funciona y otras no.

https://drive.google.com/file/d/1mXBTRK ... sp=sharing
--------------------------------------------------------------------------------------------------------------

OskarG,no hace falta que pongas el this,puedes poner el nombre que le des al objeto,es lo que yo hago,ejemplo.

var jugador = new Sprite():
jugador.x
jugador.y
O puedes hacer esto otro.

var jugador = new Sprite():
this.x
this.y

El ultimo que has puesto es incorrecto hokuto. No puedes usar this.x si no es como dice cictec. Se debe usar desde un metodo. Y no desde una funcion. Ya que desde una funcion no hay la instancia.
User avatar
erkosone
 
Posts: 10392
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: Test de mi gameEngine en processing.

Postby Hokuto7 » Sun Jul 15, 2018 1:16 pm

erkosone wrote: El ultimo que has puesto es incorrecto hokuto. No puedes usar this.x si no es como dice cictec. Se debe usar desde un metodo. Y no desde una funcion. Ya que desde una funcion no hay la instancia.


Pues ya me estas liando,porque yo pensaba que cuando llamabas a new Sprite(),estabas creando una clase y luego se podria utilizar debajo el this.Pues entonces no se como se crea una clase y un metodo en javascritps.

Parece ser que los creadores de lenguajes de programacion,tienen que añadirle algo distinto a su lenguaje para que paresca diferente,cuando son todos mas o menos iguales.Lo unico que hacen es marear a la gente.Javascripts :n: ,python :y:
User avatar
Hokuto7
 
Posts: 855
Joined: Mon Aug 28, 2017 10:14 am

PreviousNext

Return to Offtopic

Who is online

Users browsing this forum: No registered users and 8 guests