Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Jonás Perusquía

Pages: [1] 2 3
Hello everyone!
I come now here to ask for your help :)

My friend is conducting a Kickstarte campaign of his new game. Here in Mexico is not easy to create a good game and become popular (most of the people is used to mini-games).

This project looks very promising for all of us who know these people.

Please help us reach the goal!

GLBasic - en / GLBasic and Java 8
« on: 2014-Jul-04 »
Hello everyone!

i tried to compile with new java sdk version 8u5

however, the console shows this and hangs:
Code: (glbasic) [Select]

BUILD STAGE 1: Compile and pack RELEASE
El sistema no puede encontrar la ruta especificada.
El sistema no puede encontrar la ruta especificada.
El sistema no puede encontrar la ruta especificada.
El sistema no puede encontrar la ruta especificada.
El sistema no puede encontrar la ruta especificada.
El sistema no puede encontrar la ruta especificada.
El sistema no puede encontrar la ruta especificada.
El sistema no puede encontrar la ruta especificada.
El sistema no puede encontrar la ruta especificada.
El sistema no puede encontrar la ruta especificada.
El sistema no puede encontrar la ruta especificada.
El sistema no puede encontrar la ruta especificada.
El sistema no puede encontrar la ruta especificada.
El sistema no puede encontrar la ruta especificada.
El sistema no puede encontrar la ruta especificada.
El sistema no puede encontrar la ruta especificada.
El sistema no puede encontrar la ruta especificada.
El sistema no puede encontrar la ruta especificada.
El sistema no puede encontrar la ruta especificada.
El sistema no puede encontrar la ruta especificada.
El sistema no puede encontrar la ruta especificada.
Updated and renamed to
Added file C:\Users\JonasPM\DEVELOPMENT\GLBasic\DitraFall\distribute\Android\build.xml
Added file C:\Users\JonasPM\DEVELOPMENT\GLBasic\DitraFall\distribute\Android\proguard-project.txt
Picked up _JAVA_OPTIONS: -Xms256m -Xmx512m
BUILD STAGE 2: Build DEBUG and install on device
   [subant] No sub-builds to iterate on
    [javac] warning: [options] source value 1.5 is obsolete and will be removed in a future release
    [javac] warning: [options] target value 1.5 is obsolete and will be removed in a future release
    [javac] warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
    [javac] 3 warnings

Maybe GLBasic 12.243 is currently not compatible with the newest Java version?

Thanks in advance!

Hi there :D!

i got some trouble while "rewritting my game's menu code, because it was a mess!!! :S

now instead of several PRINTs, i would like to add line breaks with "\n" but it simply shows a blue square :(

here is a screenshot:

Can anyone help me please? :) thank you in advance

Hello there all community members :)

I recently tried some scaling code using ZOOMSPRITE and ROTOZOOMSPRITE, however, the SPRCOLL didn't like those commands because it detects the current size of the original loaded sprite, and not the printed zoomed sprite.
i was thinking on a solution... using GRABSPRITE but i'm not sure if it will work because of my game having a background...

Thanks in advance :)!

GLBasic - en / Introduction to 3D
« on: 2013-May-05 »
Hi, i have a game (DitraFall) where i show an image in the background and some text is displayed, but i would really like to scale that text to fit several screens, and i want to achieve this by doing this:

Code: (glbasic) [Select]
SUB intro:
STRETCHSPRITE 21,0,0,sx,sy
INC mn,1

X_CAMERA 0, 0, 0, 0, 0, -1
X_PRINT "presenta...",sx/2-(LEN("presenta...",TRUE)/2), sy/1.5, -1, 1//TRUE // TEST FOR SCALABLE TEXT //
X_PRINT "presents...",sx/2-(LEN("presents...",TRUE)/2), sy/1.5, -1, 1//TRUE // TEST FOR SCALABLE TEXT //
IF mn > 260
PLAYMUSIC "hola.mp3", TRUE

but no text is displayed :( is there something wrong with the X_CAMERA or X_PRINT commands i placed?

i already tried commenting the STRETCHSPRITE but still nothing displayed... thanks in advance :) you guys are awesome

GLBasic - en / How to get only filename?
« on: 2013-May-01 »
Hi people :)

Is there a way to get only the filename with FILEREQUEST$() or DDgui_File() ?

I want my App to import .wav files and play them, but these ones give me the full path :(

Thank you in advance :D

GLBasic - en / bitmap Font resize?
« on: 2013-Apr-11 »
Hello all of you :), i just wanted to ask you if it was posible to resize a Font using for example using GETFONTSIZE command?

Thanks in advance :)

I would like to create a big Font file and resize the characters at any size, depending on screen resolution :)

maybe something like this?

Code: (glbasic) [Select]
tx = sx/99
ty = tx * 1.2

what about using X_PRINT?

Easy way to test your games:

real Android running under Windows... Windroy

btw, i'm unable to open my game DitraFall on it, my game just goes FC, but hope it Works for you :)

GLBasic - en / how to "pause" my app?
« on: 2013-Mar-28 »
Hi, i come again to ask you how to pause an App for example, you are playing and you have to stop, so you just click on an icon and the game becomes paused, then if you want to unpause it, just click same icon...

i have tried with SLEEP and HIBERNATE commands but none seems to work as i would like...

Would sub GLB_ON_PAUSE work?
any help? thanks in advance

Code: (glbasic) [Select]
TYPE _pause
    FUNCTION pause:
      AUTOPAUSE self.a


GLOBAL pauses[] AS _pause;
GLOBAL pausegame AS _pause;

IF KEY(57) = 1; DIMPUSH pauses[],pausegame; ENDIF
FOR contadorPauses=0 TO LEN(pauses[])-1
  IF contadorPauses>0
     IF KEY(57) = 1
     DIMDEL pauses[],contadorPauses

GLBasic - en / Button pressed, then released
« on: 2013-Mar-28 »
Hello my friends, i come here to ask you if there is any way to change the value of a variable but after releasing the pressed button

Code: (glbasic) [Select]
MOUSESTATE mx,my,b1,b2
 IF b1= TRUE THEN a=1
using this will change the value at pressing, but how to change value after releasing?

thank you in advance

GLBasic - en / SQLite help
« on: 2013-Feb-02 »
Hello my friends :), i have a question for you...

¿Is there any tutorial for using the SQLite port for GLBasic?

the available information is a bit little and im using DDgui and SQLite for a project.

And making some tests, givea me a very complex code that its hard to understand... (even for me and i wrote it xD)

GLBasic - en / Read and Write Files help
« on: 2012-Dec-19 »
im sorry for asking too much help but seriously i need it :$

The problem:
I´m looking to open a file and read a variable inside of it and use it inside the code, if another variable is bigger, then equialize them

Code: (glbasic) [Select]

variable1=READFILE "file.txt",line

IF variable1<variable2
variable2=WRITEFILE "file.txt",line

something like that

GLBasic - en / help with TYPES and FUNCTIONS
« on: 2012-Dec-10 »
Hello everyone, i need your help please :$

I can´t make this piece of code to work:

Code: (glbasic) [Select]
IF SPRCOLL(1,self.x,self.y,0,_disparo.posX, _disparo.posY)
Code: (glbasic) [Select]
TYPE _disparo

FUNCTION make: mouseX, mouseY

DRAWSPRITE 2, self.posX, self.posY

FUNCTION update:
IF SPRCOLL(2,self.posX,self.posY,1,x,y)

LOCAL disparos[] AS _disparo;
LOCAL ultimaPulsacion=GETTIMERALL();
LOCAL disp AS _disparo;
LOCAL frecuencia_disparos=150;

TYPE _asteroide

FUNCTION hacer: X, Y

FUNCTION dibujar:
ROTOSPRITE 1, self.x, self.y, ra

FUNCTION actualizar:
          IF SPRCOLL(1,self.x,self.y,0,_disparo.posX, _disparo.posY)       // This is what i cannot make to work
          DIMDEL  asteroides[],contadorasteroides

LOCAL asteroides[] AS _asteroide;
LOCAL ultimoasteroide=GETTIMERALL();
LOCAL appear AS _asteroide;
LOCAL frecuencia=200;

Can you please help me?

GLBasic - en / problem with white text (DDgui)
« on: 2012-Nov-07 »
Hello, i recently started using DDgui but the text it shows is white and it looks like its hidden because of the white background...

¿Is there a way to change the text color?


Hola amigos, he vuelto con una preguntita sobre el tema anterior:

Hola mis queridos amigos de GLBasic que con mucho gusto ayudan a los que necesitan una mano con este fabuloso SDK...

Les cuento, venía haciendo un sistema de disparos para mi juego DitraFall ( y pues estoy algo atorado...

Resulta que lo que hasta ahora he logrado me deja disparar 1 vez, pero al querer disparar de nuevo se reinicia el misil lanzado... me explico..

1er click= disparo
2do click devuelve el primer disparo a la posición inicial

Code: (glbasic) [Select]
// --------------------------------- //
// Project: SHOOT
// Start: Sunday, June 10, 2012
// IDE Version: 10.283

SETCURRENTDIR("Media") // go to media files
LOADSPRITE "rocket.png", 1
LOADSPRITE "shot.png", 2

GLOBAL mx,my,b1,b2,wx,wy,mx1,my1,b3,b4

GOSUB game

SUB game:

MOUSESTATE mx,my,b1,b2

PRINT b1, 100, 100

DRAWSPRITE 2, wx, wy

IF b1=1

Yo quisiera poder lanzar varios misiles seguidos, pero no logro hacerlo :S

¿Me podrían ayudar a encontrar la solución? Se los agradecería mucho!

Con la ayuda de Hark0,veketor y mentalthink pude "entender" cómo implementar la función deseada:

Hola jonas aunque no he mirado mucho el hilo, te explico porque en estó soy un "experto" más que nada porque creo que la mitad de mi vida con GLbasic me he dedicado ha hacer el disparo para los marcianos...

Te explico tienes 2 posibilidades, una es un array Dinámico, creo que por tú tierra los arrays les llamáis arreglos, y luego es hacerlo con un array estático... Te dejo esté ejemplo que te he hecho con array dinámico, el de estático a ver si lo hago mañana, que casi se me acaba la "tinta"  :D

Code: (glbasic) [Select]
// --------------------------------- //
// Project: shot
// Start: Monday, June 11, 2012
// IDE Version: 10.283

// SETCURRENTDIR("Media") // go to media files

//Esto es para que el array, un único array esté como divido en dos, comparte el Indice, pero tiene x e y, pero en realidad es el mismo array

GLOBAL shot[] AS SHOT // Aqui lo que haces es que el Array pueda tener use de las x e y , o sea shot[indice].x o shot[indice.y]
DIM    shot[0]

GLOBAL n_Shot AS SHOT // Esta variables es la que utilizamos como contador más adelante, fijate que le sucede igual que al array
// o sea puedes escribir n_Shot.x o n_Shot.y, es necesario ponerlo asi, porque sino no puedes añadir indices
// al array, porque tambien pertenece al TYPE !!!OJO EN EL CÓDIGO MÁS ABAJO PORQUE TE PUEDE CONFUNDIR ALGO!!!

GLOBAL mx,my,b1,b2    //variables para el raton
GLOBAL sx,sy    //para la pantalla asi ya tenemos el valor para el límite derecho, ya que es un shoter horizontal
GETSCREENSIZE sx,sy    // Cojemos las medidas de la pantalla, por defecto pone la resolucion a 640,480---  me parece

MOUSESTATE mx,my,b1,b2 //function para hacer que el raton funcione
get_Positions()     //funcion para cojer las coordenadas de raton y meterselas al array
draw_Shot() //Dibujo el disparo, en este caso solo es un asterisco


FUNCTION get_Positions:

IF b1 // Si pulso el boton izquierdo
INC n_Shot.x // incrementa aquella variable que teniamos más arriba en 1, o sea cada vez que le doy suma 1, pero fijate que
// tiene esa .x detras de n_Shot

DIMPUSH shot[], n_Shot //Esto lo que hace es que el array se agranda, como estámos pulsando el boton, pues esté array que tenia
//indice 0, pasa a tener indice 1, indice 2, indice 10, 30 .... ETC

shot[n_Shot.x-1].x = mx //Esto es importante, lo que te hace es que cada vez que pulso, mete en el array la coordenada del raton
// en este caso las X del mouse, pero fijate muy importante,
//n_Shot.x-1 , el indice tiene un menos 1, estó porque, porque si no pusieramos un -1 estariamos en el final
//justo del array y el programa simplemente "peta" o sea en cuanto pulses se te cerraria

shot[n_Shot.x-1].y = my // esto es lo mismo, pero para las eje Y del mouse, recuerda -1, esto es realmente importante



FUNCTION draw_Shot:
//Bien y aqui que pasa

STATIC speed_Shot //pues que declaro está funcion, le he puesto que sea estátic , pero podría ser Local, incluso sería más
//correcto, está variable va a ser a la velocidad que se mueve "la Bala"
   speed_Shot = 2 // La variable es un incremento de valor 2

FOREACH item IN shot[] // Este tipo de For´s es algo más inusual pero para mi es la mejor manera de hacer esto te explico:

//Este for dice, Oye para cada item (esto es una variable que podría ser Perico_de_Los_palotes) , o sea, cada cosa que hay dentro
//de array shot[] (nuestro disparo), haz lo siguiente...

// Eso puede ser un poco confuso,

INC item.x , speed_Shot    //Este incremento es el que nos hace que la bala se mueva hacia la derecha, fijate que curiosamente
  //La variable item, ahora es item.x, esto es debido a que como el array tiene las "propiedades x e y"
  // la variable del for las hereda "Esto es suposición mia"

PRINT "*" ,  _ // Simplemnte dibujamos la bala que es un <asterisco> *
    item.x  ,  _ //Fijate que las lineas no está en una sola linea, esto se hace simplemente añadiendo al final , _
//Free mem
// Y aqui finalmente liberamos de la memoria del ordenador o el mobil, ese array que se iba agrandado
// OJO, es muy pero que muy importante, en el PC, puede tardarte incluso 10 min en ver como el juego se ralentiza
// Pero en el mobil, depende como puedes estar 30 segundos, y notar como empiezan a bajar los FPS, esto es
// porque el array de disparo se va agrandado y va quitando espacio de memoria

IF item.x > sx // Como lo hace es muy sencillo, fijate lo que le decimos, si item.x, o sea la bala, pasa de la posicion mayor
// de la pantalla por la derecha, elimina el "objeto"

DEC n_Shot.x //OJO está linea ES MUY IMPORTANTE, recuerdas arriba que para crear el disparo con el botón derecho
//está variable iba creciendo... pues cuando llega al fina debemos obligar a que baje su valor, o sea
//Si teniamos un valor de 300 pulsaciones del raton, cuando esa vala numero 300 llegue a la derecha valdrá
//por un momento 299, si no haces esta lines el programa petará

DELETE item //Esta linea simplemente te libera de memoria el indice del array, y lo que hará si sueltas el boton, es que
//Cuando desaparezcan todas la balas tu array volverá a valer 0

//Y bueno ya está , un "tochaco", pero funciona


Hola Jonaspm:

  El código que he puesto, es muy similar a lo propuesto tanto por Hark0 como por MentalThink, el código de Mentalthink está ampliamente comentado, y es más completo que el mio, te recomiendo lo mires detenidamente. Te resumo como funciona el mio:
  - Se crea un tipo disparo con algunas funciones para manejarlo:
      *make: "crea" el disparo en pantalla, para ello, le pasamos los valores del ratón, que es desde donde nace el disparo.
      *update: actualiza-mueve el disparo en cada llamada.
      *draw: pinta en pantalla el sprite de disparo en la posición correspondiente.
  - Los disparos se almacena en un array dinámico (no hemos determinado su tamaño, ya que desconocemos cuantos disparo tendremos en pantalla). El array disparos[] está inicialmente vacío, y representa lo que tendremos en pantalla, es por ello que existe una variable llamada disp que, por poner un simil, sería como el disparo que está pendiente de salir de la nave, en el momento que pulsamos el disparo, este, sale de la nave para representarse en pantalla, añadiendose al array disparos[].
  - Los disparos se ha de eliminar de algún modo al salir de la pantalla o al impactar, como no tenemos nada con lo que impactar, lo que hacemos es borrar todo disparo que salga por el margen izquierdo con la siguiente condición:
Code: (glbasic) [Select]
IF (disparos[contadorDisparos].posX<0)
DIMDEL  disparos[],contadorDisparos
  - Finalmente, creamos un temporizador para no llenar la pantalla de disparos, de tal modo que solo se puede disparar cada x segundos:
Code: (glbasic) [Select]
((ultimaPulsacion+frecuencia_disparos)<(GETTIMERALL()))Donde ultimaPulsacion guarda el instante del último disparo válido y frecuencia_disparos, se encarga de poner un retardo entre disparos, todo ello se compara con gettimerall() que devuelve un contador que contiene el tiempo que lleva el programa en funcionamiento.

 Sobre multitouch: si lo soporta, mira en los foros.


Ahora mi pregunta es... ¿Sería posible añadir la misma función pero para Asteroides generados al azar?

Tal y como trabaja el juego:


Pages: [1] 2 3