Page 21 of 33

Re: Test de mi gameEngine en C++

Posted: Fri Jan 04, 2019 10:34 am
by erkosone
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!

Re: Test de mi gameEngine en C++

Posted: Fri Jan 04, 2019 10:41 am
by erkosone
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:
[Codebox=cpp file=Untitled.cpp]#include "gameLibZero.cpp"

keyboard keyb;
void setup(){
setMode(640, 400);
setFps(60);
keyb.setFont(GetFontDefault());
}

void draw(){
keyb.core();
keyb.render();
}
[/Codebox]


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..
[Codebox=cpp file=Untitled.cpp]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);
}
}
}
//---------------------------------
};[/Codebox]


Mas cositas en los siguientes tutoriales ;)

Re: Test de mi gameEngine en C++

Posted: Fri Jan 04, 2019 12:10 pm
by Hokuto7
Ponle la fecha de actualizacion a la libreria por que si no me pierdo,lo del keyboard no acabo de entender para que es. :?:

Re: Test de mi gameEngine en C++

Posted: Fri Jan 04, 2019 1:57 pm
by erkosone
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..

Re: Test de mi gameEngine en C++

Posted: Fri Jan 04, 2019 5:02 pm
by Hokuto7
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.

Re: Test de mi gameEngine en C++

Posted: Sat Jan 05, 2019 9:23 am
by erkosone
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-)

Re: Test de mi gameEngine en C++

Posted: Sat Jan 05, 2019 10:10 am
by CicTec
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.
[Codebox=gemix file=Untitled.gemix]
private
string caracter;
begin
write(0, 160, 100, 4, caracter);

loop
caracter = itoa(ascii);
frame;
end
end
[/Codebox]
Me parece mucho mas facil que en tu libreria y segun la descripcion que has indicado tu sistema no funciona totalmente bien.

Re: Test de mi gameEngine en C++

Posted: Sat Jan 05, 2019 4:19 pm
by erkosone
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:

Re: Test de mi gameEngine en C++

Posted: Sat Jan 05, 2019 5:16 pm
by CicTec
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.

Re: Test de mi gameEngine en C++

Posted: Sat Jan 05, 2019 9:07 pm
by OskarG
Amor ..amor ...amor cuanto espíritu navideño brota por este medio... ay dios!! Lógico ,si ya ha pasado la Navidad :mrgreen: