Italian community of Lazarus and Free Pascal
Programmazione => Graphics => Topic aperto da: Stilgar - Aprile 30, 2012, 10:56:40 am
-
Ciao a tutti.
Con nonorelogic è nata l'idea di fare un gioco da presentare al contest brasiliano.
Allora, ho parlato con un collega che ha lavorato nel mondo dei view giochi. Mi ha dato qualche dritta ;)
Chi è interessato. Si faccia avanti.
Stilgar
-
se non ho capito male qua di esperti in videogiochi (parlo di scriverli ;) ) non c'è nessuno, quindi nessun problema di figuracce :D
proviamo dai
-
Ho parlato con un collega che scriveva videogiochi (ha partecipato a due progetti, tra cui MotoGP).
Mi ha dato delle dritte.
Se partiamo seriamente, vediamo di applicare alcuni consigli ;)
Intanto sto guardando in rete, se troviamo librerie (pezzi di codice) che possono aiutarci in alcune parti.
;D
-
stamattina stiamo lavorando seriamente tutti e due vedo :D:D:D
ma... non sarebbe meglio prima identificare bene cosa sviluppare? ;)
-
qualcosa del genere vi piace?
http://www.box10.com/matrix-rampage.html
-
Allora.
Secondo me, poi è da vedere, il gioco che ne deve uscire non deve essere un gioco completo, ma una sorta di demo giocabile (leggi 1 livello solo).
Visto che il contest da più punti ai progetti "portabili", la demo deve essere portabile ;)
(OT : Visto che pfcup lo riesci ad usare bene, sarebbe il caso di avere una versione [per piattaforma] comune da usare tutti nel progetto, per evitare anche questo scarto che a me compila e a te no ... )
E' un gioco di astronavi (visto che si è cominciato in questo modo con Sergio).
L'astronave di muove da Sinistra a Destra.
Lo sfondo si deve muovere (creando un effetto di parallasse). Due livelli di scroll. Primo piano (con gli ostacoli) secondo piano sfondo.
Il secondo piano di "background" deve essere più lento del primo.
L'astronave deve potersi muovere nelle 4 direzioni. (Quindi non ha una posizione fissa in un asse, come Space Invaders).
L'astronave deve poter avere 3 tipi di colpo.
1) Mitragliatore.
2) Missili base, missili intelligenti (gli intelligenti sostituiscono i base)
3) Laser.
La mitragliatrice è quello di base (non viene mai perso nel gioco).
Gli atri 2 si devono "guadagnare" con i PowerUp a video. I PowerUp devo essere colpiti dallo sparo.
Idee buttate alla rinfusa.
-
Sto provando TBGRABitmap.
Sono impressionato (mooooolto positivamente) dalle demo e i test.
Ce n'è uno che spacca le pupille ...
-
(OT : Visto che pfcup lo riesci ad usare bene, sarebbe il caso di avere una versione [per piattaforma] comune da usare tutti nel progetto, per evitare anche questo scarto che a me compila e a te no ... )
penso che bisognerebbe decidere quale versione fpc utilizzare e quali componenti includere
io partirei dalla fpc 2.6: in quanto stable dovrebbe darci meno noie sulle diverse piattaforme
se poi riusciamo a compilare anche una versione per android :P
Lo sfondo si deve muovere (creando un effetto di parallasse). Due livelli di scroll. Primo piano (con gli ostacoli) secondo piano sfondo.
Il secondo piano di "background" deve essere più lento del primo.
L'astronave deve potersi muovere nelle 4 direzioni. (Quindi non ha una posizione fissa in un asse, come Space Invaders).
L'astronave deve poter avere 3 tipi di colpo.
1) Mitragliatore.
2) Missili base, missili intelligenti (gli intelligenti sostituiscono i base)
3) Laser.
La mitragliatrice è quello di base (non viene mai perso nel gioco).
Gli atri 2 si devono "guadagnare" con i PowerUp a video. I PowerUp devo essere colpiti dallo sparo.
altre idee alla rinfusa:
- la velocità di spostamento dell'astronave potrebbe cambiare, magari prendendo durante il gioco una specie di icona: engine++
- un colpo e si muore è un po' demoralizzante, metterei su una sorta di resistenza in %
- io pensavo allo spostamento dell'astronave su una circonferenza che tocca i 4 lati dello schermo (quindi spostamento solo laterale dx/sx) giusto per simulare un'incursione in una specie di tunnel.
lo scroll in questo caso andrebbe rivisto ma secondo me sarebbe molto divertente in quanto i nemici ed i loro proiettili appaiono da lontano (che è il centro del cerchio al centro della circonferenza) e si avvicinano sempre di più. i proiettili sparati dall'astronave convergono al centro della circonferenza (spero di essermi spiegato e di essermi regolato nella complessità :P )
Edit:
magari visto che lo spostamento è solo dx/sx ci si può inventare che con un terzo tasto si esegue una virata spaziale e si finisce dal lato opposto della circonferenza
-
- io pensavo allo spostamento dell'astronave su una circonferenza che tocca i 4 lati dello schermo (quindi spostamento solo laterale dx/sx) giusto per simulare un'incursione in una specie di tunnel.
Forse non ci ho capito una benemerita fava.
Cosa intenti per una circonferenza?
-
Sto provando TBGRABitmap.
Sono impressionato (mooooolto positivamente) dalle demo e i test.
Ce n'è uno che spacca le pupille ...
sono un po' preoccupato per il refresh della scena, anche l'esempio sprite che si trova in lazarus non è un granchè come fluidità....
-
Avevo in mente una cosa del genere... solo che questo è in 3d ...
http://www.tuttogratis.it/giochi_gratis/growwing_sparatutto_spaziale_3d_a_scorrimento_orizzontale/
-
si avevo capito, alla R-Type ed è un gran bel risultato
e ci si può sbizzarrire sugli sfondi
in invece dicevo così:
-
Cacchio allora allego anche io qualche immagine ;)
La prima immagine l'ho composta facendo copia e incolla dalla seconda di alcuni pezzi ;)
-
Ecco la demo che mi interessa ;)
http://www.microgiochi.com/giochi/arc-wing-8300.php
Molto semplice ed intuitivo ;)
-
ho visto la demo (e ci ho pure giocato un po')
in effetti mi pare più semplice da affrontare come problematica
resta il fatto che bisogna capire come rendere fluido il tutto
Edit:
hai dato un'occhiata qua?
http://www.pascalgameengine.com/wiki/doku.php?id=application_events
-
Se qualcuno conosce persone brave con la grafica ... ;) (Sempre per la Wish list)
Sto cercando di capire come fare a gestire 2 bitmap e renderizzarle assieme.
:D
EDIT :
Con http://wiki.freepascal.org/BGRAControls#BGRASamples_unit
-
spiega meglio: una tantum per ottenere uno sfondo scorrevole o a runtime?
-
Avere l'effetto parallasse.
Come ho detto sto facendo le prime prove, per capirci qualche cosa :D
-
se ho capito che vuoi fare, ad occhio, più che bitmap dovrebbero essere 2 png con la trasparenza
poi per renderizzarle insieme si dovrebbero prendere 2 diversi offset e creare l'immagine risultante
facile a dirsi no? ;)
-
Diciamo che le idee sono chiare... è la libreria che non sembra comportarsi come voglio :( o come mi aspetto...
-
ok...
dai un'occhiata a imagemagik ho visto che ci sono gli header per pascal...
Edit:
solo che penso che questa sia un'operazione dispendiosa, non vorrei facessimo prima ad evitare la trasparenza
posta le 2 immagini così ci ragiono sopra pure io
-
Ti allego i sorgenti ... appena funzionano decentemete :D
-
ma non eri al lavoro anche tu? :D
-
Uno sta chattando con la ragazza, l'atro tra facebook e youtube non ha pace.
I clienti sono tutti a casa, e noi ci teniamo le ferie ;)
-
Ciao Nomore.
Allora mi sembra che vada bene, se non fosse che non è fluido lo spostamento dell'astronave :(
Qui entra Windows (da me). Mi rompe parecchio. (Si tratta dei tempi della ripetizione del carattere. Introduce un ritardo).
EDIT:
Committato sul nostro repository il test.
Ora sto vedendo come fare in modo di utilizzare (solo windows) le api RowInput ...
-
Il Codice lo trovate a :
"https://svn.code.sf.net/p/lazarusiug/liug/trunk/progetti/grafica/Contest (https://svn.code.sf.net/p/lazarusiug/liug/trunk/progetti/grafica/Contest) 2012/Parallasse e sprite"
-
Ciao , ma non si puo' vedere il codice , il sito richiede una password e nome utente!
-
Oddio.
Io ho utente e password di sourceforge..ma il repository dovrebbe essere visibile a tutti :)
Controllo meglio e ti faccio sapere.
-
http://sourceforge.net/projects/lazarusiug/ (http://sourceforge.net/projects/lazarusiug/)
Prova ad accedere da questo link.
Il tasto SVN dovrebbe farti passare indenne dalle richieste di user e pwd.
EDIT:
Porca paletta ho fatto compia e incolla dell'url che permette di scrivere nel repository ...
Scusate.
Per accedere in sola lettura :
http://svn.code.sf.net/p/lazarusiug/liug/trunk/progetti/grafica/
-
Ok , così si puo' vedere , e mi pare , da quello che ho visto che l'idea sia quella giusta. Domani provo a vedere come funziona e se posso vedo di darti una mano! Ciao e grazie ,era circa un programmino così che volevo fare per mio figlio!
-
Mio figlio ha visto le prove ...
Mi ha chiesto "quando posso giocarci?" :o
-
Bello !!!
Ho notato una cosa: nella "FormKeyDown", usi i codici 112 e 113 per indicare i tasti F1 ed F2. Se aggiungi alla uses "LCLType", potrai usare al loro posto le costanti VK_F1 e VK_F2. Il risultato sarà lo stesso, ma avranno un "nome parlante" !!!!
P.S. Su Linux 64 bit, mentre andava il gioco, ho cliccato sul "?" e mi ha impalato il PC per un paio di minuti. Ci ho riprovato una seconda volta ed ha funzionato senza problemi. Boh !!!
Ciao, Mario
-
Ciao e grazie ,era circa un programmino così che volevo fare per mio figlio!
ciao Sergio
visto che le cose stanno prendendo forma direi che tu e tuo figlio dovete pensare ad un nome per il giochino ;)
PS: lo ha visto anche mio figlio (6 anni) e anche lui mi ha chiesto quando ci si può giocare :D :D
-
Scusate, nel programma fMain c'è una unit Properties che io non riesco a trovare e che mi blocca la compilazione. Dove la posso trovare , per provare il gioco, come funziona. Ciao e grazie
-
Sergio... prova a vedere se adesso compila tutto.
Ieri sera ero cotto quando ho committato. (Non ho dato retta ai messaggi .. deve avermi segnalato qualche errore che non ho letto :( )
Sto modificando la parte degli sfondi, in modo da renderli "infiniti"...
-
Mi da ancora un errore , non riconosce > .
if (length(line) > 0) then . Mi segnala sintax errata!
Puoi vedere come mai ? Grazie , Sergio
-
Dove sono dichiarati <> ?
-
Scusa, nello scaricare i file >e < mi si sono trasformati in < e > . Ora modifico e poi provo il programma , Ciao :-[
-
Non ho capito bene cosa hai fatto, ma ti conviene usare un client SVN per non impazzire.
TortoiseSVN va benissimo per i nostri bisogni.
Il giorno che decidi di committare, puoi benissimo aprire un account SourceForge (costa nulla ;) ). Scarichi di nuovo (ma questa volta in lettura/scrittura) e modifichi le cose e poi puoi committare ;)
Stilgar
-
Ok, grazie . Il gioco funziona! bisogerebbe pero' modificare la reattivita' dell'astronave. Si muove un bel po' dopo aver schiacciato un tasto freccia. Esamino un po' il prg. e se trovo qualche cosa ti faccio sapere . Grazie per le dritte u SouceForge . Appena posso vedo ! Ciao Sergio ;)
-
Evidentemente stai usando window ;)
E' windows che sta introducendo il problema.
Ho iniziato ad usare il sistema ... RowInput al posto del classico.
Questo taglia fuori tutti i Window prima dell'XP, ma non c'è verso di cambiare "la risposta dell'astronave. Questo è dovuto alla latenza che il buon windows introduce nella gestione della tastiera. Prova a premere qualsiasi tasto. C'è sempre un salto tra la prima risposta e le sucessive.
Dipende da come hai configurato il tuo sistema opeativo ... (bella rogna no?)
Ho contattato il forum principale, per sapere se qualcuno ha già iniziato ad usare questo metodo. L'alternativa è aprirsi il codice di qualche framework e vedere come fanno a leggere da tastiera loro...
-
Ho capito ! Pensavo che usando Seven a 64 bit il sistema fosse piu' reattivo. Ho provato ad installare il pacchetto Castle , per videogames, mi sembra che la gestione dei tasti e del mouse siano migliori. Se vuoi provarlo lo trovi su wiki nella sezione dei dowload.Ci sono anche degli esempi fatti bene.Magari si riesce ad utilizzare qualche cosa di questo pacchetto. Ciao
;)
-
Dopo la tua segnalazione ho controllato Castle.
Usa OpenGL come motore di rendering. Quindi è OpenGL che "controlla" la tastiera...
E la versione di OpenGL per Win usa RowInput :(
Il casino è che FreePascal non mi aggancia la chiamata ... se mi rispondono... dovrei aver risolto ;) Altrimenti ... "so zzi" :D
-
ho visto che ci sono stati progressi :)
ho da postare alcune modifiche per far funzionare il tutto sono linux, come faccio ad accedere a svn anche in scrittura?
grazie
comunque il ritardo dopo la prima pressione c'è anche sotto linux, solo che non ho ancora idea di come si possa sistemare... guarderò un po' in giro
-
Per accedere in scrittura, bisogna avere l'account su SF.
EDIT:
Vorrei usare il RowInput, nel caso si preveda l'uso di JoyStick ;)
-
ce l'ho solo che non gli basta
infatti si tratta di qualche direttiva per condizionare la compilazione di RawInput solo sotto windows
sto guardando una libreria che a occhio sembra un sacco interessante... zengl
in serata spero di avere le idee un po' più chiare
-
Nomore ... stavo giusto scaricando ZenGL :D (Via SVN)
Ho l'impressione che stiamo andando via in parallelo ... non è che stiamo fancendo anche le stesse prove?
hahahahahaha
-
pare di si
e mi sa tanto che se guardi la demo 05 ci rimani male anche tu con la fluidità...
però oggi sono un po' incasinato :(
-
Nomore,
come avrai notato è stata la prima cosa che ho segnalato sull'astronave ;)
I movimenti a scatto.
Vediamo se ZenGL è buono per il 2d... altrimenti abbiamo bisogno di un modellatore 3d ... e non credo che qui piovano modellatori 3d ;)
E non dimentichiamoci che il contest brasiliano ha sempre usato Boardgame ... come esempio ;)
-
Stavo controllando la licenza di ZenGL ...
Per mobile è a pagamento ... occhio Nomore ;)
EDIT:
http://zengl.org/license.html (http://zengl.org/license.html)
EDIT2:
Le Demo sono interessanti... ha anche un motore fisico integrato ;)
-
vabbè però se si usa link dinamico e si sistribuisce sotto GPL3... se po' ffa
vediamo di capirci qualcosa poi diamo un'occhiata anche a castle
per i board game... vabbè... però si può anche evolvere no? ;)
-
Diciamo che pensavo ad un bind statico (in modo da non avere casini)
Essendo un progetto Open non ci sono problemi ;)
Se ricordo bene, eri tu a voler compilare sotto Android ;)
-
Se ricordo bene, eri tu a voler compilare sotto Android ;)
bè... secondo le regole più piattaforme = più punti....
tanto andiamo per vincere no? :D
-
ok.... Window e Linux ;)
mac ... forse.
Mobile .. no ;)
-
Scusa Stilgar, mi sono registrato su Souceforge , ma per collegarmi con il progetto come devo fare . Volevo dare una mano ! Ciao . Su souceFourge sono registrato come wenturs2 .
:)
-
vai al progetto.
https://sourceforge.net/projects/lazarusiug (https://sourceforge.net/projects/lazarusiug)
Prova a cercare la richiesta di entrare (era la vecchia modalità di gestione dei progetti, con quella nuova devo ancora prendre mano :( )
EDIT1:
Non ti trovo con il nome "wenturs2"
EDIT2:
Ho problemi con la parte amministrativa del progetto ... mi da un 500 come errore. Evidentemente stanno facendo qualche manutenzione ai server.
Appena posso ti aggancio al progetto ;)
EDIT3:
Risulti in lista adesso :D
-
E una cosa del tipo?
La grafica è molto semplice.
Provatelo e poi ditemi
http://cdn2.flashtowerdefence.com/flashtowerdefence-cdn/swf/vectortd2.swf
-
Si , ho visto che sembra stiano lavorando . Appena puoi agganciami , cosi' se posso vi do una mano !(in quello che posso,visto la mia scarsa conoscenza in grafica). Ciao
:D