Test de mi gameEngine en C++

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

Re: Test de mi gameEngine en C++

Postby erkosone » Fri Jan 04, 2019 10:34 am

He terminado el ejemplo, me ha terminado rayando jajaja.. demasiado largos los videos..
Vale, esta actualizada la descarga del codigo de ejemplo en los videos de youtube, ahora voy a por el video del teclado que se explica en 1 minuto.

En breve mas cosas.. y por fin.. la libreria de red!
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: Test de mi gameEngine en C++

Postby erkosone » Fri Jan 04, 2019 10:41 am

Entorno de desarrollo con la libreria actualizados al inicio del post :)

Ahora la libreria trae un pequeño pero util controlador de teclado..
Un ejemplo sencillo de uso es este:
Source Code (C++) [ Download ] [ Hide ]
  • #include "gameLibZero.cpp"
  •  
  • keyboard keyb;
  • void setup(){
  •     setMode(640, 400);
  •     setFps(60);
  •     keyb.setFont(GetFontDefault());
  • }
  •  
  • void draw(){
  •     keyb.core();
  •     keyb.render();
  • }
  •  



creas una variable del tipo keyboard.. le pasas una fuente.. y a usarlo sin mas..

tu_objeto_teclado.core() hace que se capturen las teclas..
tu_objeto_teclado.render() pinta en las X Y del objeto keyboard el contenido del buffer de teclado con un cursor parpadeando etc etc..

El objeto keyboard es igual de completo que screenDrawText() admine alineación de texto, sizeFont, Font.. alpha etc etc..

El codigo del controlador de teclado por si alguien tiene curiosidad es este aunque se explica por si solo..
Source Code (C++) [ Download ] [ Hide ]
  • class keyboard{
  •     public:
  •     int size = 22;                      // text font size..
  •     static const int buffer_size = 255; // keyboard buffer size..
  •     char buffer[buffer_size];           // buffer..
  •     int key;                            // allows key detection code..
  •     int ptr = 0;                        // iterator..
  •     bool visible = true;
  •     int align = RIGHT;
  •     float x, y;
  •     float alpha = 255;
  •     Font font;
  •     bool font_defined = false;
  •     int delay;                          // delay to show cursor..
  •     //---------------------------------
  •     //---------------------------------
  •     void core(){
  •         key = GetKeyPressed();
  •         if(IsKeyPressed(KEY_BACKSPACE)){
  •             key = -1000;
  •         }
  •         switch(key){
  •             case -1:
  •                 // no key detected..
  •                 break;
  •             case -1000:
  •             {
  •                 if(ptr>0){
  •                     ptr --;
  •                     buffer[ptr] = 0;
  •                 }
  •                 delay = 0;
  •             }
  •                 break;
  •             default:
  •             {
  •                 buffer[ptr] = key;
  •                 ptr++;
  •                
  •                 if(ptr>buffer_size){
  •                     cout<<"Warning: Keyboard buffer overflow."<<endl;
  •                     ptr--;
  •                 }
  •                 delay = 0;
  •             }
  •                 break;
  •         }
  •     }
  •     //---------------------------------
  •     void setFont(Font fnt){
  •         this->font = fnt;
  •         font_defined = true;
  •     }
  •     //---------------------------------
  •     void clear(){
  •         memset(buffer, 0, sizeof(buffer));
  •         ptr = 0;
  •     }
  •     //---------------------------------
  •     void render(){
  •         if(!font_defined){
  •             cout<<"Warning: Keyboard font not defined.."<<endl;
  •         }else{
  •             screenDrawText(font, size, buffer, align, x, y, WHITE, alpha);
  •             delay = (delay+1)%(fps/2);
  •             if(delay<(fps/4)){
  •                 Vector2 offset = MeasureTextEx(font, buffer, size, text_spacing);
  •                 screenDrawText(font, size, "_", align, x+offset.x+2, y, WHITE, alpha);
  •             }
  •         }
  •     }
  •     //---------------------------------
  • };



Mas cositas en los siguientes tutoriales ;)
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: Test de mi gameEngine en C++

Postby Hokuto7 » Fri Jan 04, 2019 12:10 pm

Ponle la fecha de actualizacion a la libreria por que si no me pierdo,lo del keyboard no acabo de entender para que es. :?:
User avatar
Hokuto7
 
Posts: 1396
Joined: Mon Aug 28, 2017 10:14 am

Re: Test de mi gameEngine en C++

Postby erkosone » Fri Jan 04, 2019 1:57 pm

Intenta escribir un texto con acentos y caracteres especiales en gemix o DivDX, solo mostrarlo en pantalla mientras escirbes o borras caracteres.
rapidamente comprenderas para que es jeje..
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: Test de mi gameEngine en C++

Postby Hokuto7 » Fri Jan 04, 2019 5:02 pm

Vale...ya he probado el ejemplo y ya se lo que es,esta chulo esto pero al pulsar enter no hay salto de linea.

En gemix nunca lo he hecho y no se como se hace.
User avatar
Hokuto7
 
Posts: 1396
Joined: Mon Aug 28, 2017 10:14 am

Re: Test de mi gameEngine en C++

Postby erkosone » Sat Jan 05, 2019 9:23 am

Es bastante complicado en gemix y similares, tiene un sistema de adquisición de teclas a bajo nivel, que esta genial si quieres hacerte algo personalizado, pero deberia tener una función que retornara el "printable character" que es lo que usa hoy en dia cualquier lenguaje, esta función retorna el ultimo caracter imprimible, osea, si pulsas un acento no devuelve nada, y si luego pulsas una vocal pues retorna la vocal acentuada, o si pulsas mayusculas no retorna nada, y si pulsas una letra pues devuelve la letra en mayusculas. En gemix todo esto tienes que hacerlo tu a mano y es bastante trabajo hacerlo bien.

La verdad es que para cuando salga la beta seria buena sugerencia pedir una función así.

Bueno, pues he terminado el sistema de entrada de texto por teclado, voy a empezar un nuevo video sobre un juego de futbol con robots jeje... y de paso voy a plantear el tema de la resolución virtual, que es algo que en cuanto haga el port a android voy a necesitar como el respirar.

En realidad voy a comentar por la comunidad de raylib haber como montar el entorno con emscriptem para compilar para html5 directamente, haber si no es mucho trabajo y puedo montar el port a web.. que depende lo rapido que funcione ya te digo que va a ser el port definitivo ya que corre en todas las plataformas del tiron 8-)
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: Test de mi gameEngine en C++

Postby CicTec » Sat Jan 05, 2019 10:10 am

erkosone wrote:Es bastante complicado en gemix y similares, tiene un sistema de adquisición de teclas a bajo nivel, que esta genial si quieres hacerte algo personalizado, pero deberia tener una función que retornara el "printable character" que es lo que usa hoy en dia cualquier lenguaje, esta función retorna el ultimo caracter imprimible, osea, si pulsas un acento no devuelve nada, y si luego pulsas una vocal pues retorna la vocal acentuada, o si pulsas mayusculas no retorna nada, y si pulsas una letra pues devuelve la letra en mayusculas. En gemix todo esto tienes que hacerlo tu a mano y es bastante trabajo hacerlo bien.

Source Code (Gemix) [ Download ] [ Hide ]
  • private
  •   string caracter;
  • begin
  •   write(0, 160, 100, 4, caracter);
  •  
  •   loop
  •     caracter = itoa(ascii);
  •     frame;
  •   end
  • end
  •  

Me parece mucho mas facil que en tu libreria y segun la descripcion que has indicado tu sistema no funciona totalmente bien.
User avatar
CicTec
 
Posts: 16553
Joined: Thu Jul 31, 2008 10:18 pm

Re: Test de mi gameEngine en C++

Postby erkosone » Sat Jan 05, 2019 4:19 pm

Pero este código que pones cicTec no detecta pulsaciones de teclas ni repeticiones ni tiene un buffer con texto ni nada, esto que es? es un simple detector de tecla pulsada.. no es lo mismo, yo hablo de un buffer de teclado completo no de un detector de teclas.

Mira te dejo un ejemplo:
You do not have the required permissions to view the files attached to this post.
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: Test de mi gameEngine en C++

Postby CicTec » Sat Jan 05, 2019 5:16 pm

De la descripcion que has dado indicabas eso de los caracteres imprimibles, sobre las pulsaciones se puede detectar con scan_code y de las repeticiones no sirve a mucho y el buffer puede serlo como no.
User avatar
CicTec
 
Posts: 16553
Joined: Thu Jul 31, 2008 10:18 pm

Re: Test de mi gameEngine en C++

Postby OskarG » Sat Jan 05, 2019 9:07 pm

Amor ..amor ...amor cuanto espíritu navideño brota por este medio... ay dios!! Lógico ,si ya ha pasado la Navidad :mrgreen:
User avatar
OskarG
 
Posts: 612
Joined: Tue Jan 12, 2010 2:12 am

PreviousNext

Return to Offtopic

Who is online

Users browsing this forum: No registered users and 7 guests