Nick_7 Pubblicato: 7 Novembre 2011 Segnalazione Share Pubblicato: 7 Novembre 2011 (modificato) nRunner Il line runner per Symbian fatto in casa - Introduzione: Ciao a tutti, come avrete ben capito il mio intento sarà quello di cercare di replicare l'ormai famosissimo e amatissimo giochino di "line runner" anche per noi "poveri" possessori di dispositivi che montano ancora un vecchio ed ormai abbandonato sistema operativo come Symbian; ma fino a quando ci saremo noi a programmare e sopratutto a divertirci con mShell non si potrà mai dire che esso sia un OS da abbandonare. Detto ciò siamo pronti ad incominciare - Obiettivo: Iniziamo innanzitutto ad analizzare il gioco originale. Attenzione però, noi non lo stiamo copiando, ma ne stiamo semplicemente prendendo spunto per realizzare qualcosa di nuovo, e chissà mai magari di migliore. Ok, però adesso basta dire cavolate! In che cosa consiste il giochino e come dovrà essere realizzato? Bene, il gioco consiste in un omino stilizzato che, rimanendo fermo nella propria posizione, deve cercare di evitare i vari ostacoli che gli vengono incontro assieme al background. Quello che dovremo fare noi sarà riprodurre le stesse funzioni di salto e di rotolamento che l'omino compie per evitare l'ostacolo. - Primi test: use graph as g, ui; x=30; //posizione x del personaggio y=65; //posizione y del personaggio n=0; //immagine dalla quale partire a=[g.icon("e:\\Images\\0.png"), g.icon("e:\\Images\\1.png"), g.icon("e:\\Images\\2.png"), g.icon("e:\\Images\\3.png"), g.icon("e:\\Images\\4.png"), g.icon("e:\\Images\\5.png"), g.icon("e:\\Images\\6.png"), g.icon("e:\\Images\\7.png"), g.icon("e:\\Images\\8.png")]; //array con tutte le immagini da far scorrere ui.ptr(ui.relative); //impostiamo il tipo di comando touch ui.keys(true); do c=ui.cmd(1); g.clear(); g.put(x,y,a[n]); //posizioniamo il personaggio g.brush(g.red); // colore sfondo del tasto d'uscita g.rect(300,0,60,60); // tasto d'uscita g.line(0,320,360,320); // linea di separazione (inutile ma giusto per capire dove toccare) g.line(310,10,350,50); // linea per disegnare la "X" di uscita g.line(310,50,350,10); // seconda linea per disegnare la "X" di uscita g.text(50,370,"salta/jump"); // un testo giusto per sapere dove toccare g.show(); y=65; // riportiamo il personaggio nella sua posizione n++; passiamo al prossimo frame if n=9 then n=0 end; //una volta in fondo ricominciamo da capo sleep(50); // intervallo tra un frame ed un altro if isarray(c) then // se il comando compare sotto forma di tocco, quindi un matrice con 3 valori [x,y,tocco (sì/no)] if c[1]>320 then y=y-45; // se tocchiamo l'area in basso allora salta end; if c[0]>300 and c[1]<60 then // se tocchiamo l'angolo in alto a destra allora si esce e=true; end; end; until e=true; - Note: Dato che non sono ancora in possesso di immagini definitive per l'omino, userò provvisoriamente le immagini postate da "lento" per il giochino di Aladino, sempre che sia d'accordo Le immagini, come avrete potuto notare dal codice, sono da mettere in e:\images\ - Conclusione: La prima parte finisce qui, ora, dato che purtroppo in questo periodo sono un pochino impegnato con l'università, non prometto aggiornamenti periodici ne tanto meno sostanziali a breve, ma come ben saprete, non appena troverò un attimino di tempo liberò mi metterò a studiare qualche piccola novità da implementare a questo che potrebbe rivelarsi un giochino davvero molto interessante se ben sviluppato; intanto attendo le vostre prime impressioni, ma sopratutto i vostri consigli sulle prossime migliorie Images.zip Modificato 7 Novembre 2011 da Nick_7 Link to comment Condividi su altri siti More sharing options...
lento Pubblicato: 7 Novembre 2011 Segnalazione Share Pubblicato: 7 Novembre 2011 Fantastico! per la prima volta ho visto il gioco che volete replicare. Direi che senza ombra di dubbio si può fare ed in seguito modificare, forse in meglio. Faccio notare che per rendere più veloce il gioco utilizza un numero di frame molto piu basso di aladin. (ad occhio sembra che per correre utilizzi 4 immagini per giunta a soli due colori. e quando salta solo due idem quando si abbassa.) Anche la dimensione dell'omino... è piccolo! quindi più proporzionato agli ostacoli. Vi consoglio di vedere quanti frame utilizza nell'intero gioco e partire da lì. Definite le immagini che volete utilizzare per il gioco il resto si fà. Link to comment Condividi su altri siti More sharing options...
lento Pubblicato: 7 Novembre 2011 Segnalazione Share Pubblicato: 7 Novembre 2011 (modificato) Scusate la domanda OT. Ma come mai su certi post mi trovo della pubblicità attaccata?. E' il forum che la gestisce? Modificato 7 Novembre 2011 da lento Link to comment Condividi su altri siti More sharing options...
Nick_7 Pubblicato: 7 Novembre 2011 Autore Segnalazione Share Pubblicato: 7 Novembre 2011 (modificato) Scusate la domanda OT. Ma come mai su certi post mi trovo della pubblicità attaccata?. E' il forum che la gestisce? Credo la pubblicità venga inserita in automatico dal sito sotto ogni primo post Comunque sia girovagando nella rete ho trovato questa interessantissima gif che contiene diversi frame, sicuramente più di 4, ma almeno l'idea della corsa è resa in maniera decisamente più realistica. Questa è la miglior gif che sono riuscito a trovare poi dopo proverò a scomporla nei sui vari frames; per quanto riguarda la dimensione credo che la ridurrò a circa un quinto o un sesto poi si vedrà Modificato 7 Novembre 2011 da Nick_7 Link to comment Condividi su altri siti More sharing options...
6587gianluca Pubblicato: 7 Novembre 2011 Segnalazione Share Pubblicato: 7 Novembre 2011 (modificato) Credo la pubblicità venga inserita in automatico dal sito sotto ogni primo post Comunque sia girovagando nella rete ho trovato questa interessantissima gif che contiene diversi frame, sicuramente più di 4, ma almeno l'idea della corsa è resa in maniera decisamente più realistica. Questa è la miglior gif che sono riuscito a trovare poi dopo proverò a scomporla nei sui vari frames; per quanto riguarda la dimensione credo che la ridurrò a circa un quinto o un sesto poi si vedrà Ciao Nick_7 ho scomposto la gif ecco le vari immagini. IMG00000.bmp IMG00001.bmp IMG00002.bmp IMG00003.bmp IMG00004.bmp IMG00005.bmp IMG00006.bmp Modificato 7 Novembre 2011 da 6587gianluca Link to comment Condividi su altri siti More sharing options...
6587gianluca Pubblicato: 7 Novembre 2011 Segnalazione Share Pubblicato: 7 Novembre 2011 (modificato) Ciao Nick_7 ho scomposto la gif ecco le vari immagini. Ripensandoci...mi sa che le immagini su postate non possono essere utilizzate in quanto hanno la striscia nera sotto e nell'uso delle immagini quando salti vedresti saltare anche il pavimento sotto l'omino. He cercato di toglierla, provala e vedi se va bene. IMG00000.bmp IMG00001.bmp IMG00002.bmp IMG00003.bmp IMG00004.bmp IMG00005.bmp IMG00006.bmp Modificato 7 Novembre 2011 da 6587gianluca Link to comment Condividi su altri siti More sharing options...
Nick_7 Pubblicato: 7 Novembre 2011 Autore Segnalazione Share Pubblicato: 7 Novembre 2011 (modificato) Ciao 6587gianluca, grazie mille per avermelo scomposto nei vari frame! In effetti è vero, proverò a togliere la banda nera. Grazie ancora alla prossima! Edit: ho appena scaricto le tue immagini editate e sembrano andare bene, le proverò tra oggi e domani Modificato 7 Novembre 2011 da Nick_7 Link to comment Condividi su altri siti More sharing options...
6587gianluca Pubblicato: 7 Novembre 2011 Segnalazione Share Pubblicato: 7 Novembre 2011 Ciao 6587gianluca, grazie mille per avermelo scomposto nei vari frame! In effetti è vero, proverò a togliere la banda nera. Grazie ancora alla prossima! Quelle nel post nr. 5 sono con la banda nera, quelle nel post nr. 6 sono già senza banda nera. Provale e poi facci sapere. Ciao.- Link to comment Condividi su altri siti More sharing options...
Nick_7 Pubblicato: 8 Novembre 2011 Autore Segnalazione Share Pubblicato: 8 Novembre 2011 (modificato) Ho provato quelle senza banda c'è ancora una piccolissima linea nera al di sotto che permane anche nel salto Comunque sia come dimensioni ci siamo sul touch-screen dovrebbe andare più che bene anche così, poi vi farò degli screenshots Grazie per il bel lavoro con le immagini Edit: Grandissima novità: come aveva già fatto 6587gianluca prima di me, sono riuscito a scomporre l'immagine animata .gif nei suoi 7 fotogrammi, poi ho completamente eliminato la striscia nera che c'era sotto ogni fotogramma ed infine ho applicato la trasparenza eliminando semplicemente lo sfondo bianco e ho salvato tutte le immagini in formato .png in modo tale da poter conservare per l'appunto la trasparenza. Ora l'effetto del movimento è davvero fantastico. Anche se non è molto, anzi quasi niente, sono comunque molto contento dei risultati fin'ora conseguiti, ora bisogna passare alla parte più importante: il codice. Note: software utilizzato per la modifica delle immagini: Gimp 2.6 A presto con altre interessanti novità! Modificato 8 Novembre 2011 da Nick_7 Link to comment Condividi su altri siti More sharing options...
Nick_7 Pubblicato: 9 Novembre 2011 Autore Segnalazione Share Pubblicato: 9 Novembre 2011 Per quanto riguarda il salto secondo voi è meglio gestire il tutto sotto forma di funzioni o in qualche altra maniera? Link to comment Condividi su altri siti More sharing options...
lento Pubblicato: 10 Novembre 2011 Segnalazione Share Pubblicato: 10 Novembre 2011 Ho notato che le immagini sono 200 pixel per 200pixel nel gioco cosa fai le riduci? Link to comment Condividi su altri siti More sharing options...
Nick_7 Pubblicato: 10 Novembre 2011 Autore Segnalazione Share Pubblicato: 10 Novembre 2011 Ho notato che le immagini sono 200 pixel per 200pixel nel gioco cosa fai le riduci? Mah... ora per i primi test penso che le terrò così anche perché non mi creano problemi e poi mi sono utili per capire bene come salta il personaggio; dopo di che, se ce ne sarà bisogno, magari le ridurrò della metà ad una grandezza di 100 pixel per 100 pixel. Ho già scritto un nuovo codice tutto adattato per gli schermi dei touch-screen, adesso il giochino viene visualizzato solo in landscape, ma non voglio ancora pubblicare il codice in quanto è troppo acerbo e non ho ancora finito di definire bene il salto... diciamo che ci sto lavorando... p.s.: @lento grazie per la risposta qui: https://www.nokioteca.net/home/forum/index.php/topic/209305-oggetto-in-movimento-x-game/page__st__40__p__1830363#entry1830363 Link to comment Condividi su altri siti More sharing options...
memoryn70 Pubblicato: 11 Novembre 2011 Segnalazione Share Pubblicato: 11 Novembre 2011 Bene bene. finalmente in questa sezione c'è di nuovo un po' di attività Da "ex" sviluppatore python su symbian vi dico che l'idea è fantastica e il gioco carino. Chissà magari se ho un po di tempo posso anche darvi una mano ma non garantisco nulla, tra università, port di rockbox e vita hehe Poi io sono ancora fermo all'n70, potrei prendere in prestito il 5228 di mia sorella se volete che faccia delle prove xD Link to comment Condividi su altri siti More sharing options...
lento Pubblicato: 12 Novembre 2011 Segnalazione Share Pubblicato: 12 Novembre 2011 (modificato) Bene bene. finalmente in questa sezione c'è di nuovo un po' di attività Eggià qui si vive alla grande! Nella discussione "Oggetto In Movimento X Game" di '6587gianluca' cè la versione più adatta la tuo N70. L'unica modifica utile sarebbe adattarlo alla risoluzione del tuo schermo (176x208) e magari lo puoi giocare in landscape. Se non mi sbaglio il tuo N70 non è touch ? vero?. Modificato 12 Novembre 2011 da lento Link to comment Condividi su altri siti More sharing options...
memoryn70 Pubblicato: 15 Novembre 2011 Segnalazione Share Pubblicato: 15 Novembre 2011 Se non mi sbaglio il tuo N70 non è touch ? vero?. L'unico touch che ha sono i tasti veri Dai quando ho un attimo di tempo lo proverò di sicuro Link to comment Condividi su altri siti More sharing options...
lento Pubblicato: 16 Novembre 2011 Segnalazione Share Pubblicato: 16 Novembre 2011 Dai quando ho un attimo di tempo lo proverò di sicuro Grazie dell'interessamento questo potrebbe aiutare che utilizza schermi come il tuo, ma non farne un impegno. La mia era solo un idea. Se nei tuoi studi cè l'informatica potresti postarci in mShell dei stralci di programmi che ci aiutino a miglioralo. Ad esempio un algoritmo di ordinamento con tanto di spegazione, come si verifica se un numero è pari ecc. Piccole cose che messe assime possano generare grandi cose. Le grandi cose nascono dall'infinitamente piccolo (grosso guaio a chinatown) Link to comment Condividi su altri siti More sharing options...
Nick_7 Pubblicato: 16 Novembre 2011 Autore Segnalazione Share Pubblicato: 16 Novembre 2011 (modificato) Ciao a tutti, ho fatto altri test sul movimento del personaggio e vi posto un codice funzionante, ma ricordo che non sono ancora compresi gli ostacoli, per ora mi sto dedicando solo ed esclusivamente allo studio del movimento del personaggio. use graph as g, ui; ui.mode(1); // forza la modalità portrait ui.ptr(ui.relative); // tipo di controllo touch a=[g.icon("e:\\Images\\0.png"), g.icon("e:\\Images\\1.png"), g.icon("e:\\Images\\2.png"), g.icon("e:\\Images\\3.png"), g.icon("e:\\Images\\4.png"), g.icon("e:\\Images\\5.png"), g.icon("e:\\Images\\6.png")]; // immagini personaggio x=100; y=100; n=0; function grafica(); // funzione che gestisce quasi l'intera grafica g.clear(); g.rect(100,100,100,100); g.brush(g.red); g.rect(300,0,60,60); g.line(0,320,360,320); g.line(310,10,350,50); g.line(310,50,350,10); g.text(150,370,"salta/jump"); g.put(.x,.y,.a[.n]); .n++; if .n=7 then .n=0; end; sleep(50); g.show(); end; do grafica(); c=ui.cmd(1); if isarray(c) then if c[1]>320 then //se tocco sotto if y=100 then do grafica(); y=y-5; n=1; // salta con l'immagine 1 until y=50; elsif y=50 then do // altrimenti grafica(); y=y+5; n=6; // scende con l'immagine 6 until y=100 // finché non torna nella posizione iniziale end; end; if c[0]>300 and c[1]<60 then // se clicko sul quadratino rosso e=true; end; end; until e=true; // si esce dal programma Sto lavorando ad una funzione più avanzata del salto del giocatore, ma ci sono ancora delle cose da sistemare e quindi non ho voluto pubblicare il codice. Comunque sia se qualcuno vuole testare già questo piccolo codice per dirmi a grandi linee le proprie impressioni non sarebbe male. Note: Questo codice è stato fatto per mantenere il cellulare in posizione verticale, ma la versione finale sarà in orizzontale. Ricordo che il codice è fatto per dispositivi touch-screen ma può essere facilmente adattato anche per i dispositivi con tastiera cambiando solo parte di immissione dei comandi. Per comodità vi inserisco il codice anche in allegato. P.S.: ciao memoryn70, sono davvero contento che ci segui e se potessi provare anche qualche codice sarebbe fantastico! A presto con altre novità! nRunner.v0.03.txt Modificato 16 Novembre 2011 da Nick_7 Link to comment Condividi su altri siti More sharing options...
memoryn70 Pubblicato: 20 Novembre 2011 Segnalazione Share Pubblicato: 20 Novembre 2011 (modificato) Purtroppo non vi posso garantire nulla, ma ora mi leggo un attimo il codice e vediamo cosa salta fuori dalla mia modesta analisi hihi EDIT: allora. Se in mShell è possibile programmare ad oggetti, li consiglio. Anche se effettivamente l'omino sarà solo uno. Ma gli ostacoli no. Ci sono le classi giusto? Per esempio un ostacolo avrà come attributi la posizione x,y rispetto alla linea, il colore ecc... Come metodi può avere una cosa tipo isCollide() oppure Move() se vogliamo aggiungere un po di difficoltà. Poi sconsiglio l'uso di variabili relative allo schermo che sono fisse...poi son dolori a cambiare tutto una volta fatto. Meglio cercare di usare qualcosa tipo X_SCREEN *.5 se si vuole a metà schermo ecc. Cosi funzionerà (beh più o meno) sia sul mio n70, che virtualmente su uno schermo di pc. Consiglio anche un po di identazione: oltre a rendere il codice più capibile è anche più facile rivederlo e correggerlo Ma le immagini sono quelle di qualche post fa? perchè me le hai convertite in png EDITONE: ok. Testato il tutto. Figo Come inizio non sembra male. Scusa una cosa isarray© praticamente vede se ci sono le coordinate del touch, altrimenti è un tasto fisico? Se è cosi, ok il principio va bene. Ma la grafica deve essere separata dai comandi...altrimenti viene fuori un casino Mi sono anche permesso di sistemare un po l'appeal del codice: /* This is a nice game... Qui un qualche commento ci sta by XXX version XXX changelog XXX */ use graph as g, ui; ui.ptr(ui.relative); // tipo di controllo touch /* Image resources */ a=[g.icon("e:\\data\\mRunner\\0.bmp"), g.icon("e:\\data\\mRunner\\1.bmp"), g.icon("e:\\data\\mRunner\\2.bmp"), g.icon("e:\\data\\mRunner\\3.bmp"), g.icon("e:\\data\\mRunner\\4.bmp"), g.icon("e:\\data\\mRunner\\5.bmp"), g.icon("e:\\data\\mRunner\\6.bmp")]; /* What's that? */ x=100; y=100; n=0; function grafica(); // funzione che gestisce quasi l'intera grafica g.clear(); g.rect(100,100,100,100); g.brush(g.red); g.rect(300,0,60,60); g.line(0,320,360,320); g.line(310,10,350,50); g.line(310,50,350,10); g.text(150,370,"salta/jump"); g.put(.x,.y,.a[.n]); .n++; if .n=7 then .n=0; end; sleep(50); g.show(); end; /* Main */ do grafica(); c=ui.cmd(1); if isarray(c) then if c[1]>320 then //se tocco sotto if y=100 then do grafica(); y=y-5; n=1; // salta con l'immagine 1 until y=50; elsif y=50 then do grafica(); y=y+5; n=6; // scende con l'immagine 6 until y=100 // finché non torna nella posizione iniziale end; end; if c[0]>300 and c[1]<60 then // se clicko sul quadratino rosso e=true; end; end; until e=true; // si esce dal programma Dimenticavo, ultimo punto della mia analisi hehe Scritte come jump o il quadratino per uscire (anche se presenti solo ovviamente ora, più avanti ci sarà qualcosa da mettere di utile) sarebbero da scrivere una sola volta o quando necessario, aggiornando solo la parte di canvas che ci interessa per ottenere prestazioni migliori, anche se effettivamente mshell + il celluare sono potenti abbastanza Bisognerà poi lavorare sul modo di generare posizioni degli ostacoli a caso, ma non troppo ovviamente. Magari integrando anche un concetto di Facile-Difficile-Medio! Lo sfondo è fisso quindi ottimo, pure l'omino. quindi dai che si fa Modificato 20 Novembre 2011 da memoryn70 Link to comment Condividi su altri siti More sharing options...
Nick_7 Pubblicato: 20 Novembre 2011 Autore Segnalazione Share Pubblicato: 20 Novembre 2011 Programmazione ad oggetti? Classi? Indentazione e commenti ok per quello non c'è problema le aggiungerò man mano. Sì le immagini sono in .png proprio per far sì che mantengano la trasparenza e che si possano vedere gli oggetti dietro il personaggio (se in futuro dovessi aggiungerci un background...) Link to comment Condividi su altri siti More sharing options...
memoryn70 Pubblicato: 20 Novembre 2011 Segnalazione Share Pubblicato: 20 Novembre 2011 (modificato) Programmazione ad oggetti? Classi? Indentazione e commenti ok per quello non c'è problema le aggiungerò man mano. Sì le immagini sono in .png proprio per far sì che mantengano la trasparenza e che si possano vedere gli oggetti dietro il personaggio (se in futuro dovessi aggiungerci un background...) Ah ottimo si! Se mshell gestisce la trasparenza ottimo! ps. leggi di nuovo il post che ho editato EDIT: ok se non sai la programmazione ad oggetti fa nulla Si può fare tranquillamente in modo lineare ma ora sono fissato con sti oggetti anche perchè all'uni sto facendo il Java hehe Modificato 22 Novembre 2011 da memoryn70 Link to comment Condividi su altri siti More sharing options...
peppareju Pubblicato: 1 Marzo 2012 Segnalazione Share Pubblicato: 1 Marzo 2012 Scusate ho letto questo topic cercando proprio questo gioco line runner che non ricordavo nemmeno il nome per il mio nokia , posso sapere se avete abbandonato tutto o state continuando? Link to comment Condividi su altri siti More sharing options...
Nick_7 Pubblicato: 25 Marzo 2012 Autore Segnalazione Share Pubblicato: 25 Marzo 2012 Personalmente ho abbandonato il progetto almeno per un po' essendo passato ad android, ma nulla vieta che un giorno ci ritorni Link to comment Condividi su altri siti More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Accedi Ora