Hello world in bennu

Spazio dedicato al linguaggio BennuGD per programmare videogiochi sulle nostre openconsole
User avatar
gigios
Newser OC.it
Newser OC.it
Posts: 851
Joined: 4 May 2011, 9:08
Console open: Wiz; Caanoo
Location: Lombardia

Re: domanda su Bennu

Post by gigios »

Code: Select all

 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.
Image
User avatar
kayuz
Cavaliere OC.it
Cavaliere OC.it
Posts: 627
Joined: 4 May 2011, 15:27
Console open: Caanoo fidelis!! sempre co'te! :D
Location: Terni

Re: domanda su Bennu

Post by kayuz »

non me lo trasforma più in dcb... :(
ne dalla caanoo ne sul pc
User avatar
gigios
Newser OC.it
Newser OC.it
Posts: 851
Joined: 4 May 2011, 9:08
Console open: Wiz; Caanoo
Location: Lombardia

Re: domanda su Bennu

Post by gigios »

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 :-)

Code: Select all

//-----------------------------------------------------------------------------
//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
Image
User avatar
kayuz
Cavaliere OC.it
Cavaliere OC.it
Posts: 627
Joined: 4 May 2011, 15:27
Console open: Caanoo fidelis!! sempre co'te! :D
Location: Terni

Re: domanda su Bennu

Post by kayuz »

grazie mille! ;)
User avatar
gigios
Newser OC.it
Newser OC.it
Posts: 851
Joined: 4 May 2011, 9:08
Console open: Wiz; Caanoo
Location: Lombardia

Re: domanda su Bennu

Post by gigios »

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
Image
User avatar
kayuz
Cavaliere OC.it
Cavaliere OC.it
Posts: 627
Joined: 4 May 2011, 15:27
Console open: Caanoo fidelis!! sempre co'te! :D
Location: Terni

Re: domanda su Bennu

Post by kayuz »

perfettoo!! me lo studio per bene ;)
il modo migliore di imparare è imitare ;) grazie mille Zip e Gigios :)
User avatar
gigios
Newser OC.it
Newser OC.it
Posts: 851
Joined: 4 May 2011, 9:08
Console open: Wiz; Caanoo
Location: Lombardia

Re: domanda su Bennu

Post by gigios »

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 ;)
Image
User avatar
kayuz
Cavaliere OC.it
Cavaliere OC.it
Posts: 627
Joined: 4 May 2011, 15:27
Console open: Caanoo fidelis!! sempre co'te! :D
Location: Terni

Re: domanda su Bennu

Post by kayuz »

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:
User avatar
gigios
Newser OC.it
Newser OC.it
Posts: 851
Joined: 4 May 2011, 9:08
Console open: Wiz; Caanoo
Location: Lombardia

Re: domanda su Bennu

Post by gigios »

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

Code: Select all

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

Code: Select all

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)

Code: Select all

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!!! ;)
Image
User avatar
kayuz
Cavaliere OC.it
Cavaliere OC.it
Posts: 627
Joined: 4 May 2011, 15:27
Console open: Caanoo fidelis!! sempre co'te! :D
Location: Terni

Re: domanda su Bennu

Post by kayuz »

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! :(
Post Reply