Jump to content
Nokioteca Forum

Oggetto In Movimento X Game


6587gianluca
 Share

Recommended Posts

Ciao ragazzi, come da titolo la mia intenzione sarebbe quella di realizzare un piccolo game e dovrei realizzare un omino che fermo in una posizione sullo schermo simula una camminata o una corsa.

Le mie nozioni di mShell non sono a livello di potrelo realizzare bene, quindi chiedo a voi, che sicuramente siete molto più preparati, se potete buttare giù qualche riga per poter vedere questo personaggio camminare sul display.

Nel caso qualcuno di voi potesse dedicare un po di tempo a questo script, successivamente potremmo, tutti insieme, realizzare il gioco che ho in mente.

Ciao e grazie.-

Link to comment
Share on other sites

Ciao, come si dovrebbe muovere l'omino? Dovrebbe rispondere alla pressione di un tasto?

Nemmeno io sono un gran esperto ma iniziamo almeno a definire le idee di base.

No, non dovrebbe muoversi alla pressione di un tasto ma dovrebbe simulare una camminata oppure una corsa rimanendo fermo in un punto del display. Come se stesse camminando su un tapirulan.

Ciao e grazie per il tuo interessamento.

Link to comment
Share on other sites

  • 1 month later...

No, non dovrebbe muoversi alla pressione di un tasto ma dovrebbe simulare una camminata oppure una corsa rimanendo fermo in un punto del display. Come se stesse camminando su un tapirulan.

Ciao e grazie per il tuo interessamento.

Prova a vedere se questo ti soddisfa?.

Credo che l'unico sistema sia di alternare in modo veloce più immagini come si fà nelle immagini gif animate.

Questo stralcio di programma mostra a video Aladin che corre estratto da una gif animata di tipo free.

use graph as g;
use ui;
aladin=[
g.icon("aladin0.png"),
g.icon("aladin1.png"),
g.icon("aladin2.png"),
g.icon("aladin3.png"),
g.icon("aladin4.png"),
g.icon("aladin5.png"),
g.icon("aladin6.png"),
g.icon("aladin7.png"),
g.icon("aladin8.png")];
n=0;
ui.keys(true);
do
g.clear();
g.put(30,30,aladin[n]);
g.show();
n+=1;
if(n=9) then n=0 end;
sleep(50);
until null#ui.cmd(0);

sleep(1000);

ed utilizza le 9 immagini seguenti

aladin.zip aladin0.png aladin1.pngaladin2.pngaladin3.pngaladin4.pngaladin5.pngaladin6.pngaladin7.pngaladin8.png

Saltellano un pò perche non le ho scomposte bene come vedi non hanno la stessa dimensione...

credo che voi saprete fare di meglio comunque.

Provare per credere....

Edited by lento
Link to comment
Share on other sites

Prova a vedere se questo ti soddisfa?.

Ciao lento, buongiorno e grazie innanzitutto. Sono felicissimo della tua risposta, ho visto su qualche altro post che sei "tornato" a shell, mi fa veramente molto piacere ed ho visto che hai un E72, io un E71 quindi molto simile.

Proverò presto quello che mi hai proposto e ti invierò uno script per fartelo provare e per vedere cosa ne pensi....poi ci risentiamo.

Ciao

Link to comment
Share on other sites

Prova a vedere se questo ti soddisfa?.

aladin.zip aladin0.png aladin1.pngaladin2.pngaladin3.pngaladin4.pngaladin5.pngaladin6.pngaladin7.pngaladin8.png

Provare per credere....

Ciao lento, come vedi non hai fatto in tempo a tornare che ti stiamo tartassando.

una delle tante domande....ma dove hai trovato le varie immagini di aladin che simulano il movimento ???

C'è per caso qualche sito ove posso prendere altre immagini di personaggi che si muovono ???

Nel frattempo ho fatto in modo che premendo il joistic in alto aladin salta, domani mattina te lo posto e vorrei fare in modo che il salto fosse più "lento" scusa la similitudine con il tuo nick...

Link to comment
Share on other sites

dove hai trovato le varie immagini di aladin che simulano il movimento ???

C'è per caso qualche sito ove posso prendere altre immagini di personaggi che si muovono ???

Tutte le immagini animate che trovi sulle pagine html sono immagini gif animate compresi gli Emoticons di questo sito

Guarda questa: :incazzato: è un animazione gif di nome incarosso.gif

Queste animazioni in realtà sono composte da piu immagini dove si è specificato dopo quanti secondi alternarle.

Esistono nel web dei programmi per poter estrarre dette sequenze di immagini.

Esistono anche dei siti dove si offre gratuitamente immagini gif animate.

Per trovarle usa un motore di ricerca tipo Google

Non essendo esperto di immagini e di elaborazione di esse io ho utilizzato imagemagick (per linux) per estrarre le sequenze di

immagini che compongono una gif animata.

Edited by lento
Link to comment
Share on other sites

Tutte le immagini.....

Esistono nel web dei programmi per poter estrarre dette sequenze di immagini.

Grazie lento, ho trovato in rete GifSplitter.exe che funziona benissimo.

Grazie. Domani mattina spero di trovare 2 minuti per postare due righe che mi intereserebbe tu vedessi.......

ciao

Link to comment
Share on other sites

Ciao lento ti allego il file Aladin_2.doc, hai nokia e72 quindi sucramente puoi provarlo, premendo il joistic verso l'alto Aladin salta. Sicuramente non ho inventato p'acqua calda ma volevo chiederti come si può fare per rendere il salto più visibuile ad occhio umano, cioè renderlo meno veloce da dare di più il senso del salto.Aladin_2.doc

In oltre volevo farti vedere una cosa. Hai presente il gioco raggiungibile dal seguene link ... http://www.y**tube.com/watch?v=XjIeIvYFEBQ (cambiare i due asterischi)

Prova dare un occhiata al file Line Rnner_5 che allego. Line Runner_5.doc

Ciò che mi piacerebbe sarebbe fare in modo che Aladin dovesse saltare degli ostacoli e se li toccasse cadesse o perdesse una vita. Mi puoi aiutare???

Ciao.-

Link to comment
Share on other sites

Complimenti per il tuo Line_Runner5 !! :lmaosmiley:

Ho trovato veramente giocabile quanto hai fatto!.

Per il problema del salto:

Come avrai capito ci deve essere sempre un Loop in esecuzione tramite il quale movimenti i vari oggetti del gioco.

Il problema consiste nel incrementare progressivamente aladiny mentre il gioco continua

a svolgersi.

per far questo ho racchiuso in tre funzioni le azioni del personaggio:

aladin corre aladin salta verso alto aladin scende a terra (oppure no!).

Il Loop principale tramite la variabile selezione che può valere 1,2,3 sa esattamente quale azione

compiere.

Quando selezione=1 aladin corre

Quando selezione=2 aladin salta in su

Quando selezione=3 aladin atterra dal salto appena fatto.

Prova a vedere se ti soddisfa.Aladin_3.txt

Questa è l'immagine bianca blank.png

Ho usato due immagini per il salto... non si può correre mentre salti!! lo dice anche Alter!.

Avevo lasciato un qualcosina da migliorare sperando che qualcuno lo facesse....

ho eliminato g.clear() cancello solo il rettangolino del personaggio con un immagine bianca.

n+=1; oltre a questo un modo più efficiente di incrementare è usando

n++; se si deve incrementare di 1.

Devo dire che sono ancora molto arrugginito con mShell perdonate possibili cavolate e se sapete far di meglio

vi prego di darci una mano.

Edited by lento
Link to comment
Share on other sites

Perchè ritieni che sia difficile?

Devi battere col dito sullo schermo per fargli fare il salto, questa è l'unica cosa che cambia :exclamation:

Certo ma ti ricordi il problema della pallina sui touch-screen? Credo che si ripresenterà la stessa problematica. Comunque sia proverò a fare dei test, poi se ne vien fuori qualcosa di buono posto il codice ;)

Link to comment
Share on other sites

Devo dire che sono ancora molto arrugginito con mShell perdonate possibili cavolate e se sapete far di meglio

vi prego di darci una mano.

Caro lento...magari fossi arrugginito come te !!!

Quello che mi chiedo è come fai a tirarne fuori una dopo l'altra, ma dove e come hai fatto ad acquisire questa padronanza di mShell se non c'è scritto da nessuna parte come si deve fare ?????? Sei un ingegniere informatico o che cosa ????

Comunque a parte tutto, devo dire che la funzionalità è perfetta, a me non proprio chiarissima ma perfetta. Ora dovremmo ( dice dovremmo ma non è capace, tu lo sai vero lento???) aggiungere il campo di gioco e cioè la linea nera sulla quale Aladin corre, creare gli ostacoli da saltare e realizzare la difficilissima collisione tra Aladin e l'ostacolo.

Chissà se sarà possibile !!!

Link to comment
Share on other sites

...aggiungere il campo di gioco e cioè la linea nera sulla quale Aladin corre, creare gli ostacoli da saltare e realizzare la difficilissima collisione tra Aladin e l'ostacolo.

Chissà se sarà possibile !!!

Ma se lai già fatto in Line_Runner5 ? .

Scene estremamente realistiche non sono sempre la scelta migliore.

A volte la semplicità delle azioni e delle animazioni da risultati migliori.

Il successo di un gioco sono dati da vari fattori per mè i più importanti sono:

1) la giocabilità

2) la capacità di tenere il giocatore incollato al gioco sfruttando inclinazioni dell'essere umano.

Guarda Tetris lo puoi disegnare in tridimensionale con sfumature estremamente complicate ma ci si

gioca volentieri come quello fatto con semplici quadrettini bidimensionali.

Credo che il fattore del suo successo sia dovuto alla dinamicita del gioco e alla innata mania dell'uomo

di dare un ordine logico a tutte le cose del creato (Sappiamo che non si può vincere ma continuiamo a giocarci!).

Detto questo se vuoi rendere il gioco più realistico sfrutta al massimo le immagini xxx.png

ad esempio gli ostacoli possono essere immagini che carichi e fai muovere sulla linea come aladin.

Per la collisione...devi:

(come nel gioco dell'oca) tornare a MarioBros e capire come si verifica il sovrapporsi di due rettangoli

(la collisione per intenderci).

Nota: dato che Aladin rimane sempre fermo in un posto (al massimo salta) si può fare in un modo piu semplice.

Se tutto questo dovesse rivelarsi pesante per le capacità grafiche di mShell

(Rallentando troppo il gioco, perdendo la dinamicità che lo rende piacevole)

bisogna scendere a compromessi o trovare espedienti vari.

Tieni presente che E71, E72 sono cellulari molto veloci nel gestire la grafica.

Lo stesso gioco su un N97 diventa tuttaltra cosa.....

Quindi tieniti un buon margine di velocità da sfruttare.

Faccio presente che mShell non è nato come linguaggio per videogiochi;

se si è consapevoli di questo limite si potranno fare dei fantastici giochi. :lmaosmiley:

Edited by lento
Link to comment
Share on other sites

Certo ma ti ricordi il problema della pallina sui touch-screen? Credo che si ripresenterà la stessa problematica. Comunque sia proverò a fare dei test, poi se ne vien fuori qualcosa di buono posto il codice ;)

Come dice Alter, Mo sta cosa comincia a scocciarmi! :angry2:

Voglio vedere se ci trovo una soluzione....per favore indicami dove prelevare il programmino che non ti va.

Mo ce provo!

Ammesso e concesso che non prometto nulla! tu che navighi sul forum di mShell nessuno li usa il touc screen?

nessuno ha scritto un qualcosa che ti spieghi il suo uso?

Possibile... :mellow:

Link to comment
Share on other sites

Ma se lai già fatto in Line_Runner5 ? .

Scene estremamente realistiche non sono sempre la scelta migliore.

A volte la semplicità delle azioni e delle animazioni da risultati migliori.

Ciao lento, prova a dare un occhiata a questo. Manca ancora la collisione.

Aladin_6.txt

Nella versione di Aladin in cui avevi creato il rallentamento nel salto non sono riuscito a collegare il movimento e l'uscita degli ostacoli in quanto quando Aladin saltava gli ostacoli uscivano all'impazzata senza mantenere la loro velocità. Booo, forse si ricollega a quello che hai scritto che a volte la semplicità delle animazioni da risultati migliori. Anche perchè se c'è il rallentamento nel salto ed il caso in cui gli ostacoli scorrono normalmente si rischierebbe di cadere sul successivo ostacolo. O no ??? Che ne dici ???

Link to comment
Share on other sites

Sono riuscito a far funzionare Aladino_2 di 6587gianluca anche sul touch-screen!!! :lmaosmiley: :lmaosmiley:

Sono davvero contentissimo, andrò avanti a vedere i vostri esempi e a creare una bella versione per i touch!

A presto!

Link to comment
Share on other sites

Nella versione di Aladin in cui avevi creato il rallentamento nel salto non sono riuscito a collegare il movimento e l'uscita degli ostacoli in quanto quando Aladin saltava gli ostacoli uscivano all'impazzata senza mantenere la loro velocità. Booo...

function aladinCorri()
 g.put(.aladinx,.aladiny,.blank); // pulisco precedente immagine
 g.put(.aladinx,.aladiny,.aladin[.n]);
 .n++;  // incremento di uno 
 if(.n=9) then .n=0 end;
 sleep(50);   <---(toglilo)
end;

basta che togli sleep(50) dalla funzione aladinCorri() e lo metti nel loop principale

//==========MAIN==========
ui.keys(true);
g.clear();
do
 tasto=ui.cmd(1); 
 if (tasto=16) and (azione=1) then initSalto(-45,45,1.8) end;
 if azione=1 then
   aladinCorri();
 elsif azione=2 then
   aladinSaltaSu();
 else
   aladinSaltaGiu();
 end;
 g.show();
 sleep(50);         <--------(mettilo qui)
until tasto=48;
//=========END MAIN=========

ovviamente incrementa il valore 1.8 in initSalto() sennò il salto diventa troppo lento e vedrai che il tutto

torna a funzionare.

Non bisogna avere fretta e capire le varie parti dei programmini prima di modificarli.

Link to comment
Share on other sites

Ciao lento, prova a dare un occhiata a questo. Manca ancora la collisione.

Aladin_6.txt

Direi che comincia a diventare interessante.

Ti consiglio ugualmente di vedere le funzioni che ho scritto per far saltare Aladin.

Lo sleep() in aladinCorri() non lò messo a caso...

E le funzioni di salto ti permettono di determinare quanto in alto vuoi che salti e dove vuoi che scenda

Ad esempio: in futuro potresti voler far saltare Aladin ad un livello piu alto o farlo atterrare su un piano piu in basso.

Ma se per ora non te la senti, Aladin_6 và bene! :shifty:

Link to comment
Share on other sites

Direi che comincia a diventare interessante.

Ma se per ora non te la senti, Aladin_6 và bene! :shifty:

Dai lento....dammi una mano per le collisioni !!!! Non è che non me la sento, non sono in grado. Se avessi le tue capacità e la tua conoscenza avrei già realizzato questo e non solo.

Spero in un tuo ulteriore aiuto.

Ciao.-

Link to comment
Share on other sites

Per quanto riguarda la collisione: non vorrei dire una fesseria, ma non si dovrebbe considerare Aladino come iscritto in un rettangolo e poi verificare la sovrapposizione di quest'ultimo con gli ostacoli?

Alter: ma che cavolo di idee gli vengono mai in mente a questo qui? Considerare gli altri figure geometriche...bah... -.-'

Link to comment
Share on other sites

Per quanto riguarda la collisione: non vorrei dire una fesseria, ma non si dovrebbe considerare Aladino come iscritto in un rettangolo e poi verificare la sovrapposizione di quest'ultimo con gli ostacoli?

Alter: ma che cavolo di idee gli vengono mai in mente a questo qui? Considerare gli altri figure geometriche...bah... -.-'

Nick, scusami se mi permetto, ma se devi postare qualcosa cerca di dare contributi e non solo scrivere cose come questa e cioè insignificante.

Ormai lo sanno anche le pietre che bisogna studiare una sovrapposizione di rettangoli. E fin qui ci siamo. Dobbiamo cercare di capire "come si fa". Poi tu scrivi che non vorresti dire una fesseria, nello stesso tempo l'hai detta in quanto qualche post più sopra lo ha detto lento che che si deve considerare la sovrapposizione. Quindi !!!

Link to comment
Share on other sites

Dai lento....dammi una mano per le collisioni !!!! Non è che non me la sento, non sono in grado. Se avessi le tue capacità e la tua conoscenza avrei già realizzato questo e non solo.

Spero in un tuo ulteriore aiuto.

Ciao.-

Porta pazienza fino Sabato o al massimo Domenica.

Cercherò di fare qualcosa di semplice.

Edited by lento
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...

Important Information

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