Jump to content
Nokioteca Forum

[mshell] Westernsoda


lento
 Share

Recommended Posts

Purtoppo.....dico Purtroppo... continuo ad infestare questo forum di cialtronaggini informatiche.

(Lascio ad altri quella seria) Fatto di fretta fatto di corsa ma il duello eccolo quà.

Due duellanti compaiono dopo un conteggio di 5 beep.

il duellante di sinistra (bob) si controlla con i tasti 1) sale 2)spara 3) scende.

Il duellante di destra (luky) si controlla con i tasti 3) sale 6)spara 9) scende.

tra di loro sono interposti casualmente dei cactus che a volte li proteggono dalle pallottole.

I due duellanti hanno a disposizione 6 cartucce.

(Chiaro scopiazzamento di un gioco che esiste da quando sono nati i computer)

Ma mi interessa far vedere che anche se mShell non è proprio il linguaggio per video giochi...a volte conta di più la fantasia di chi

li crea.

Come al solito non è completo, ma già usabile.

mettere i suoni in "E:\sounds\" bang.wav muerte.wav

e le immagini in "E:\Images" bara.png bob.png luky.png cactus.png

buon divertimento e già che ci siete aggiustatelo un pò se vi va.

p.png

Ecco il sorgente: Cowboy.txt e la versione da :Cowboy176_208.txt

Ciao...

Modificato da lento
Link to comment
Condividi su altri siti

Un ultima cosina per certi abitanti del forum......

Stavolta le funzioni me le dovete imparare.......

Qui cè nè una che non potete fare a meno di apprezzarne l'utilità.

Si tratta di acaso(da,ad)

che genera dei numeri casuali da un valore minimo fino ad un valore massimo da voi scelto.

for a=0 to 5 do
  print acaso(1,10)
end
-> 2
 1
 10
 6
 9
 10

Pensate cosa sareste costretti a fare per generare i 12 numeri casuali che servono per posizionare i cactus e i due cowboy.

senza questa funzioncina....

Date un occhiata anche ha come è commentato il programma, vi rende più facile capire cosa fà.

(non solo ad altri ma anche a chi lo ha scritto!)

La prossima volta ci sarà da combattere con le matrici dette anche array se nel frattempo volete capire cosa sono per conto vostro...

Uè senza se pò fà soltanto en 1000 de giochi semplici semplici.

Per i super dotati..... che ce dareste na mano?

Link to comment
Condividi su altri siti

Ciao "lento", avrei bisogno di un aiuto..uno solo, e stai sempre a chiede!!!!

Il fatto che quando uno dei due pistoleri spara ed il proiettile incontra un cactus e detto proiettile si ferma vicino al cactus è una cosa che mi incuriosice, e cioè è una complicazione che mi interesserebbe farla anche mia in quanto è bellina ed utile nei giochini, però guerdando e leggendo il sorgente non riesco a capire a quali istruzioni corrisponde. Saresti cosi gentile da evidenziarmi la parte del sorgente che effettua il controllo del proiettile che colpisce il cactus ?????

Grazie "lento" e ciao.-

Link to comment
Condividi su altri siti

Saresti cosi gentile da evidenziarmi la parte del sorgente che effettua il controllo del proiettile che colpisce il cactus ?????

function sparabob()
//=================
 if .bobcolt<0 then return; end;
 y=.ybob +15;
 audio.play("E:\\Sounds\\bang.wav");
 for a=20 to 220 by 10 do
  // qui legge il colore del disegno se è diverso dal fondo giallo vuol dire che ha colpito il cactus.
			 |
			 v
if g.get(a,y)<> g.yellow then audio.stop(); return false;  end;
g.pen(g.black); g.brush(g.black); g.rect(a,y,3,2);				 
g.show(); sleep(50);
g.pen(g.yellow); g.brush(g.yellow); g.rect(a,y,3,2); sleep(50);
 end;
 for a=220 to 239 do
if g.get(a,y)<> g.yellow then return true; end;
 end;
 return false;
end

Guarda che ti ho dato anche una mezza risposta per la lentezza del suono, vai a vedere la diacussione dove me lo chiedevi, appena cè un pò di tempo ci mettiamo mano, daccordo?

Ciao...

Modificato da lento
Link to comment
Condividi su altri siti

Guarda che ti ho dato anche una mezza risposta per la lentezza del suono, vai a vedere la diacussione dove me lo chiedevi, appena cè un pò di tempo ci mettiamo mano, daccordo?

Ciao...

Ciao grazie della risposta rapidissima. Scusami ma non riesco a trovare la discussione ove ti avevo chiesto della lentezza del suono e quindi non riesco a trovare la tua risposta....mi puoi inviare il link della discussione.

In oltre volevo chiederti sempre per il controllo del proiettile-cactus,

tu scrivi all'interno della funzione :

if g.get(a,y)<> g.yellow then audio.stop(); return false; end;

mi chiedevo, nel caso in cui un controllo del genere lo volessi inserire in un sorgente privo di funzioni, come sostituisco il return false; ?????

Link to comment
Condividi su altri siti

non riesco a trovare la discussione ove ti avevo chiesto della lentezza del suono...mi puoi inviare il link della discussione.

Quihttps://www.nokioteca.net/home/forum/index....t&p=1300091

In oltre volevo chiederti sempre per il controllo del proiettile-cactus,

tu scrivi all'interno della funzione :

if g.get(a,y)<> g.yellow then audio.stop(); return false; end;

mi chiedevo, nel caso in cui un controllo del genere lo volessi inserire in un sorgente privo di funzioni, come sostituisco il return false; ?????

colpito=false; // variabile che se false non colpito se true colpito!
y=200; 
for a=20 to 220 by 10 do  // scansiona la riga
 if g.get(a,y)<> g.yellow then  // se il colore del fondo è diverso da giallo "COLPITO"
colpito=true; break;	// assegna e  esce da for..do con break.
 end;
end

qui continua il tuo programma e andrai a verificare la variabile colpito se colpito è uguale a true

farai quello che farai......

ma le funzioni le dovrai IMPARARE......he! he! he!

potresti scrivere una funzione che verifica cosa ai colpito così:

function colpitocosa(y)
 for a=20 to 220 by 10 do // scansiona la distanza tra pistolero e pistolero un controllo ogni 10 pixel
if g.get(a,y)<> g.yellow then return "cactus";  end; //rende il nome cactus e ferma la funzione
 end;
 for a=220 to 239 do  // fa una scansione pixel per pixel nello spazio del pistolero avversario
if g.get(a,y)<> g.yellow then return "colpito"; end;  // se incontra luky rende colpito e ferma la funzione
 end;
 return "nulla"; // se non ha colpito ne cactus ne pistoleri rende la parola nulla
end

se ti è più facile puoi vederla così:

variabile=colpitocosa(200);

in variabile potrai trovarti la scritta "cactus" oppure "colpito" oppure "nulla" a seconda di cosa è successo alla riga 200

0,0  ---> x
+----------------------+
|			|
|			|
|                      |
|  ....................|  scandaglia qui! riga 200 (y=200)
|			|
|			|
|			|
+----------------------+

Ciao...

Modificato da lento
Link to comment
Condividi su altri siti

colpito=false; // variabile che se false non colpito se true colpito!
y=200; 
for a=20 to 220 by 10 do  // scansiona la riga
 if g.get(a,y)<> g.yellow then  // se il colore del fondo è diverso da giallo "COLPITO"
colpito=true; break;	// assegna e  esce da for..do con break.
 end;
end

Meraviglioso, e vai, e vai, e vai, e vai.... ancora una volta grazie al tuo aiuto precisissimo sono riuscito ad applicare queste righe ad un altro sorgente facendo in modo, senza mille controlli, di far fermare un proiettile se incontra qualcosa sulla sua strada.

Grazie mille, certo che Voi due ne sapete una più del diavolo è !!!!!!

..........allora scusa, mi chiedevo un altra cosa.....dal momento che è possibile fare il controllo :

if g.get(a,y)<> g.yellow then

si può anche effettuare il controllo in base al colore ????? e cioè cerco di spiegarmi meglio, si può fare ad esempio :

if g.get(a,y) = g.red then ......

if g.get(a,y) = g.green then ....

if g.get(a,y) = g.blu then .....

...

...

e così via ??????????????????????

Modificato da 6587gianluca
Link to comment
Condividi su altri siti

si può anche effettuare il controllo in base al colore ????? e cioè cerco di spiegarmi meglio, si può fare ad esempio :

if g.get(a,y) = g.red then ......

if g.get(a,y) = g.green then ....

if g.get(a,y) = g.blu then .....

...

...

e così via ??????????????????????

Certamente..... addirittura il colore di confronto lo puoi prelevare direttamente dal disegno e assegnarlo ad una variabile.

colore=g.get(10,10) questo comando prelevà il colore del pixel alle coordinate 10-10 e lo mette in una variabile

che poi puoi usare per fare dei confronti.

if g.get(x,y)= colore then ...

Non solo ma puoi prelevare anche una linea o un segmento e confrontarlo con un altro segmento di schermo.

ciao.....(e impara le funzioni...)

Link to comment
Condividi su altri siti

  • 2 settimane dopo...
No non l'ho ridimensionato, se riesci a farlo tu, magari durante le vacanze gli darò un'occhiata :wacko:

Prima vorrei risolvere il gioco della pallina...

Qui ti posto la versione ridimensionataCowboy176_208.txt

ho tolto anche un errore sulla funzione acaso() (Speravo che qualcuno la correggesse...)

Mentre ho lasciato la lettura dei tasti autobloccante...tanto se qualcuno fa il furbo e non molla il tasto l'altro se preme lo sparo vince!.

Ricordatevi....è fatta con qualche errore (veniale) e per essere migliorata.

Ripeto sono diventato un videogiochista solo per accontentare delle richieste....

Link to comment
Condividi su altri siti

  • 1 anno dopo...

Scusate, ho tentato, ma invano, di adattarlo ad un Nokia E71, quindi ho provato a far muovere almeno uno dei due omini con il mouse, ho sostituito i tasti con il mousa ma non si muovono, ad esempio ho provato a far muovere bob con i tasti 16 in su e 17 in giù, ma non si muove....secondo Voi perchè ????

Ciao '6587gianluca' è da tempo che non ti si sente....

Forse stai sbagliando numero di tasto usa i valori predefiniti ui.upkey e ui.downkey

al posto dei numeri 16 e 17.

A presto :)

Link to comment
Condividi su altri siti

CIAAAAAOOOOOOOOO LENTO, scusa se grido ma mi fa un grandissimo piacere sentiri, veramente mi fa tanto piacere, pensavo che ti eri solo ed esclusivamente dedicato ad altri linguaggi e pensavo che non ti saresti più fatto vivo in mShell.

Ho appena provato le tue indicazioni, e come sempre funziona tutto alla grande.

Grazie.

Come ti va ??? A cosa ti stai dedicando ultimamente ???

Ciao e buona domenica.

Gian Luca.-

Link to comment
Condividi su altri siti

Come ti va ??? A cosa ti stai dedicando ultimamente ???

Ciao e buona domenica.

Gian Luca.-

Buona Domenica anche a te.

Attualmente continuo la mia disperata ricerca di un linguaggio che mi permetta di sfruttare i cellulari per un tempo sufficientemente lungo.

Anche Alter comincia ad essere deluso.....Lui puntava su j2me.

Intanto sfrutto mShell (Ho abbandonato Python per Nokia, mannaggia! :doh: mo me tocca rimangiarmi tutto quanto detto prima!)

Massi...Massi... tanto sto in fondo al barile più giù de cosi non se pò annà.

Link to comment
Condividi su altri siti

Ma secondo te, lento, all'origine quando avevi creato questo giochino lo avevo installato su nokia N82 e funzionava e tutt'ora funziona regolarmente.

Attualmente come hai visto sopra, il sorgente l'ho pasato su E71. La prima volta l'ho inviato via bluetooth, l'ho trovato nella lista dei giochi in mShell l'ho avviato e poi ho provato a fare qualche modifica......il risultato è che il file mi dava un errore quando gli davo il go ed addiritura dopo alcune prove non ho più trovato il file nell'elenco dei giochi. Ho provato sucessivamente a trasferire il sorgente direttamente mediante lettore di memory. Ha funzionato per un po, gli ho fatto alcune modifiche ed oggi sono andato in mShell ed il file westernsoda non c'è più...scomparso.

Secondo te da cosa può dipendere ????

Ciao.-

Link to comment
Condividi su altri siti

Ma secondo te, lento,.....

.....

Secondo te da cosa può dipendere ????

Ciao.-

Tanto per intenderci questo giochino l'ho scritto proprio su un E71. Per la precisione avevo mShell sulla memoryCard.

Se hai disposto i suoni e le immagini nelle posizioni sopra indicate il tutto dovrebbe funzionare.

Credo che quando fai delle modifiche è poi lo salvi in realtà lo salvi in una sottodirectory o in una directory che mShell non è in grado

di vedere.

Prova a sfrugolare in giro per le directory con FileManager e vedi se il tuo sorgente ti compare in posizioni strane..

Modificato da lento
Link to comment
Condividi su altri siti

Ho smanetato da tute le parti, il sorgente non c'è.

In oltre ogni cosa che faccio mi appare il seguente messaggio di errore :

file or database corrupted !

boooooooo!!!!!!!!

E' successo qualcosa alla MemoryCard (forse l'ai estratta mentre il cellulare stava scrivendo dei dati o cose simili.)

Purtroppo ti toccherà riformattarla...

Ma prima prova a salvare il possibile di quanto hai scritto sulla MemoryCard.

Se durante la formattazione ricevi ancora delle indicazione di errori significa che FISICAMENTE la MemoryCard è rovinata quindi da sostituire.

Spero che avrai provveduto a fare un Backup dei dati importanti.

Link to comment
Condividi su altri siti

Please sign in to comment

You will be able to leave a comment after signing in



Accedi Ora
 Share

×
×
  • Crea Nuovo...

Informazione Importante

Questo sito utilizza i cookie per analisi, contenuti personalizzati e pubblicità. Continuando la navigazione, accetti l'utilizzo dei cookie da parte nostra | Privacy Policy