Hello world in bennu

Spazio dedicato al linguaggio BennuGD per programmare videogiochi sulle nostre openconsole
Avatar utente
gigios
Newser OC.it
Newser OC.it
Messaggi: 851
Iscritto il: 4 mag 2011, 9:08
Console open: Wiz; Caanoo
Località: Lombardia

Re: domanda su Bennu

Messaggioda gigios » 15 giu 2011, 19:02

Codice: Seleziona tutto

 import "mod_text" // import the module to output text to console, using say()
 import "mod_screen"
 import "mod_video"
 import "mod_string"


    Process Main() // start the definition of the main process
    Begin // start the code
     set_mode(320,240,16);
     write(0,10,10,0, "HELLO WORLD!");
     Loop
         Frame;  //Update screen
     End
    End // end the definition of the main process


Non ho provato ma al codice di Zip va aggiunto il loop per non uscire subito dal programma e soprattutto l'istruzione frame per aggiornare. Se ancora non va provo a scriverlo e 'testarlo' io e poi lo posto.
Immagine

Avatar utente
kayuz
Cavaliere OC.it
Cavaliere OC.it
Messaggi: 627
Iscritto il: 4 mag 2011, 15:27
Console open: Caanoo fidelis!! sempre co'te! :D
Località: Terni

Re: domanda su Bennu

Messaggioda kayuz » 15 giu 2011, 19:22

non me lo trasforma più in dcb... :(
ne dalla caanoo ne sul pc

Avatar utente
gigios
Newser OC.it
Newser OC.it
Messaggi: 851
Iscritto il: 4 mag 2011, 9:08
Console open: Wiz; Caanoo
Località: Lombardia

Re: domanda su Bennu

Messaggioda gigios » 15 giu 2011, 19:41

Ma non parte nulla o semplicemente non vedi più il dcb?
Stai utilizzando il gpe modificato da te?

Dammi 5 minuti che provo a fare io l'Hello World :-)

Codice: Seleziona tutto

//-----------------------------------------------------------------------------
//Test
PROGRAM Test;

//-----------------------------------------------------------------------------
// Import - Modules used in the application
import "mod_key";
import "mod_video";
import "mod_text";
import "mod_proc";

BEGIN
   set_mode(320,240,16);       // Set video risolution to 320x240 pixels and 16 bits colors
   
   write(0,8,8,0, "Hello World!");

   LOOP
      // Check key to exit
      IF(key(_esc))
         exit();
      END

      FRAME;
   END
   exit();
END
//-----------------------------------------------------------------------------


Ora provo anche su Wiz e ti faccio sapere, su windows funziona.

Edit:
Non è che non hai messo il runtime di Bennu all'interno della cartella del tuo programma sulla SD?

Questo è il sorgente compreso di gpe per compilarlo/avviarlo, unico problema che nello zip ho messo il runtime della Wiz, devi sostituire la cartella con il runtime per Caanoo (prendi direttamente quello del TextBinaryClock di test che hai provato x me).
TestHelloWorld.7z
Immagine

Avatar utente
kayuz
Cavaliere OC.it
Cavaliere OC.it
Messaggi: 627
Iscritto il: 4 mag 2011, 15:27
Console open: Caanoo fidelis!! sempre co'te! :D
Località: Terni

Re: domanda su Bennu

Messaggioda kayuz » 15 giu 2011, 19:50

grazie mille! ;)

Avatar utente
gigios
Newser OC.it
Newser OC.it
Messaggi: 851
Iscritto il: 4 mag 2011, 9:08
Console open: Wiz; Caanoo
Località: Lombardia

Re: domanda su Bennu

Messaggioda gigios » 15 giu 2011, 19:51

Non è che non hai messo il runtime di Bennu all'interno della cartella del tuo programma sulla SD?

Questo è il sorgente compreso di gpe per compilarlo/avviarlo, unico problema che nello zip ho messo il runtime della Wiz, devi sostituire la cartella con il runtime per Caanoo (prendi direttamente quello del TextBinaryClock di test che hai provato x me).
TestHelloWorld.7z
Immagine

Avatar utente
kayuz
Cavaliere OC.it
Cavaliere OC.it
Messaggi: 627
Iscritto il: 4 mag 2011, 15:27
Console open: Caanoo fidelis!! sempre co'te! :D
Località: Terni

Re: domanda su Bennu

Messaggioda kayuz » 15 giu 2011, 19:56

perfettoo!! me lo studio per bene ;)
il modo migliore di imparare è imitare ;) grazie mille Zip e Gigios :)

Avatar utente
gigios
Newser OC.it
Newser OC.it
Messaggi: 851
Iscritto il: 4 mag 2011, 9:08
Console open: Wiz; Caanoo
Località: Lombardia

Re: domanda su Bennu

Messaggioda gigios » 15 giu 2011, 19:59

Nessun problema, non ti dico quante domande ho fatto all'inizio, ovvero praticamente due settimane fa, a Zip in chat :lol:

Da allora è diventato insonne :P

Ieri ha avuto l'idea di cominciare a trattare la programmazione per Bennu dall'inizio, proprio partendo da un Hello World a seguire, il tutto per la nostra WebZine.
Vediamo se nasce davvero qualche cosa di utile per tutti i 'principianti' come noi ;)
Immagine

Avatar utente
kayuz
Cavaliere OC.it
Cavaliere OC.it
Messaggi: 627
Iscritto il: 4 mag 2011, 15:27
Console open: Caanoo fidelis!! sempre co'te! :D
Località: Terni

Re: domanda su Bennu

Messaggioda kayuz » 16 giu 2011, 16:27

continuiamo lo sviluppo ;)
oggi mi piacerebbe riuscire a inserire una opzione per tornare al menù della caanoo senza dover spegnere la console... come si potrebbe fare?
ho visto nel codice dell'applicazione di Gigios che usava una specie di j_keys( mi pare) per dare input dalla console... come potrei fare io? ;)
grazie mille a chi mi sosterrà ;)

ps: il progetto attuale è sempre l'inguardabile hello world, non so fare di più :lol: :lol:

Avatar utente
gigios
Newser OC.it
Newser OC.it
Messaggi: 851
Iscritto il: 4 mag 2011, 9:08
Console open: Wiz; Caanoo
Località: Lombardia

Re: domanda su Bennu

Messaggioda gigios » 16 giu 2011, 16:44

1) Devi copiare il file jkeys.lib, che trovi nel mio progetto, nella stessa cartella in cui si trova il tuo prg.
2) Aggiungi la seguente linea subito dopo le varie istruzioni import

Codice: Seleziona tutto

include "jkeys.lib"

Praticamente il file lib non è altro che un sorgente da includere, ovvero il compilatore lo inserirà al posto dell'istruzione include e compilerà il tutto come se fosse un unico sorgente.

3) Dentro il tuo processo principale, mettilo dopo il set_mode che imposta la risoluzione, aggiungi queste due istruzioni

Codice: Seleziona tutto

jkeys_set_default_keys();   //Set default keys
jkeys_controller();         //Start process used to check Wiz/Caanoo keys


La prima inizializza i tasti (ovvero associa alle costanti utilizzate dal lib i corretti codici da 'verificare' sulla console)
La seconda avvia il processo che continua a leggere lo stato dei tasti in modo che da altri processi sia possibile, semplicemente leggendo la variabile jkeys_state con il codice del tasto, per determinare se il tasto è premuto o no.

4) Aggiungi nello stesso punto in cui controlli il tasto esc la seguente istruzione (includo anche l'esc per semplificare il copia incolla)

Codice: Seleziona tutto

IF((key(_esc) ||(jkeys_state[_JKEY_MENU])))

come vedi jkeys_state non è altro che un array (un elenco di variabili con lo stesso nome) a cui si può accedere tramite l'indice dell'elemento, che in questo caso rappresenta anche il tasto da usare sfruttando delle costanti con dei nomi che 'ricordano' la funzione del tasto.
Nel codice che ho postato viene controllato il tasto MENU (puoi aprire il sorgente della lib per vedere i codici degli altri tasti).

Ciao :-)

P.S. Il tutto preso dal TextBinaryClock, sfruttalo come 'sorgente' per copiare/incollare parti di codice. Penso sia il sistema migliore per imparare, ovvero sperimenta!!! ;)
Immagine

Avatar utente
kayuz
Cavaliere OC.it
Cavaliere OC.it
Messaggi: 627
Iscritto il: 4 mag 2011, 15:27
Console open: Caanoo fidelis!! sempre co'te! :D
Località: Terni

Re: domanda su Bennu

Messaggioda kayuz » 16 giu 2011, 18:32

grazie Gigios, ecco quello che sono riuscito a fare:


//-----------------------------------------------------------------------------
//Test
PROGRAM Test;

//-----------------------------------------------------------------------------
// Import - Modules used in the application
import "mod_key";
import "mod_video";
import "mod_text";
import "mod_proc";
include "jkeys.lib"
BEGIN
set_mode(320,240,16); // Set video risolution to 320x240 pixels and 16 bits colors
jkeys_set_default_keys();   //Set default keys
jkeys_controller();         //Start process used to check Wiz/Caanoo keys

write(0,8,8,0, "WINDAAA");

LOOP
// Check key to exit
IF((key(_esc) ||(jkeys_state[_JKEY_MENU])))
exit();
END

FRAME;
END
exit();
END
//-----------------------------------------------------------------------------

che pizza però, non me lo compila in dcb! :(


Torna a “BennuGD Italia”

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite