Commodore 64 > Programmazione, Grafica e Musica

Conversione Di Fix-it Felix Jr Per C64

<< < (2/11) > >>

Turrican^:
 ma per lo sviluppo è meglio usare i PM o è consigliabile postare i progressi qui?

per i 2 pixel 'a vuoto' che risultano quando il personaggio 'salta' (elevandosi appunto di 2 righe di pixel) alla fine l'ho realizzato direttamente nello sprite, anche perchè tutto sommato sono riuscito a farci stare tutto senza perdere di definizione, inoltre ho dovuto farlo per cercare di mantenere gli sprite più fedelmente possibili all'originale (ci tengo davvero MOLTO alla fedeltà nelle conversioni, a parer mio nelle conversioni la fedeltà è essenzionale, se uno non dedica particolare enfasi alla fedeltà allora il lavoro perde completamente di senso, tanto vale realizzare tutt'altra cosa, magari un originale piuttosto che spacciare per conversione una semplice 'somiglianza').

Per 'cambiare i colori' non intendevo quelli associati agli sprite, so' gia che solo 1 colore per sprite è definibile (sprite color), mentre gli altri 2 sono globali dunque gli stessi per tutti gli sprite onscreen (vabbè e poi c'è la penna 0 per la trasparenza).
Invece io intendevo se sia possibile cambiare il colore definibile (lo sprite colour) a tempo di esecuzione (un po come si fa su Amiga con i BOB), ti spiego perchè: quando felix prende la torta il cappello lampeggia, ora per implementare questa caratteristica ci sono 2 modi: [1] farlo da codice cambiando velocemente il colore dello sprite colour (ecco spiegata la mia domanda) oppure [2] cambiare sprite con uno sprite uguale ma con i colori scambiati (e allora in questo caso dovrei disegnare 2 sprite 'uguali' ma con i diversi colori del cappello che simulano appunto il blinking del cappello)...Update: lo gia fatto :P ovviamente riguarda solo lo sprite multicolor, l'overlay non va proprio toccato.

per disegnare gli sprite sto usando SpritePad, ma non permette di posizionare gli sprite di overlay dove voglio, infatti lui ti visualizza lo sprite multicolor in una cella ma ti piazza lo sprite di overlay nella cella adiacente ma alle stesse coordinate dello sprite multicolor precedente, difatti tutti gli sprite sono disposti in una griglia, dove la coordinata di 'piazzamento' dello sprite-overlay è sempre [0,0] rispetto al precedente. E' un po scomodo nel caso uno invece vuole sovrapporre lo sprite di overlay in una coordinata diversa da quella dello sprite multicolor sottostante... cmq alla fine ho risolto (e ho preso appunti delle coordinate (si tratta di traslazioni di 1 o 2 pixel), così quando dovrai assemblarli nel codice non dovrai impazzire a capire come ho deciso di metterli :P)

ecco una preview dei progressi sugli sprite:
(manca Ralph, il boss, ma prima di disegnarlo in SpritePad ci lavoro con ArtIcons, quindi fin quando non ho finito non sarà presente in formato sprite.)



Inoltre mancano tutti gli sprite 'di prova', ma quelli te li mostrerò quando decideremo insieme come realizzare certe cose, ancora non è il momento...


Per quanto riguarda lo sfondo, usando CharPad sto realizzando i char, e a tal prosotito volevo chiederti, ma i Tile devono essere composti perforza da 4x4 chars? ti andrebbe bene lo stesso se faccio Title da 3x3 o 5x5 char? è che sto uscendo pazzo per farlo fedele all'originalel, sto facendo un sacco di prove ma c'è sempre qualcosa che mi infastidisce, ...ma prima o poi riuscirò a farci entrare tutto, a costo di provare tutti i multipli di 8 e a costo di permutare ogni singolo char...
ah, e per quanto riguarda i char posso usare misti MultiColor e HiRes ? o ci sono delle limitazioni di scanline? ricordo qualcosa che aveva a che fare con i colori per scanline, ma non ricordo bene...
Inoltre, se devi aggiornare il vetro di una finestra, ed il vetro è composto da 3x3 char, sei in grado di refreshare 3x3char oppure devi perforza refreshare un carattere alla volta? giusto per capire se lo 'effetto vetro rotto' devo realizzare in un carattere solo oppure ne posso usare 2x2 etc...

 

Turrican^:
 Io avevo pensato ad un totale di 16 sprite su schermo, 8+8, che di seguito ti descrivo:

(1) 8 sprite nella parte superiore dello schermo (ovvero la zona orizzontale dove c'è Ralph):
- 6 sprite multicolor + 2 sprite HiRes per l'overlay

(2) 8 sprite nella parte inferiore (ovvero tutto ciò sotto ralph):
- 3 sprite per Felix (2 sprite multicolor per busto e gambe + 1 sprite HiRes per l'overlay.
- 3 sprite per i battoni che lancia Ralph e attraversano verticalmente tutta la parte inferiore dello schermo (non ci saranno problemi per lo scanline visto che ho contato gia 8 sprite totali).
- 2 sprite per 2 uccelli che volano orizzontalmente.

Per gli amichetti che si affacciano alla finestra o per la torta avevo pensato ad un char anzichè ad uno sprite! per l'omino che si affaccia non credo ci siano problemi, però per la torta si può refreshare un char composto da 2char che si alternano? (la torta dovrebbe essere animata da 2char che si scambiano per dare l'effetto del fumante).

----

le gambe di Felix sono disegnate con 1 sprite multicolor, la definizione è accettabile, tranne per i 2 sprite di Felix che cade giu dal palazzo perchè colpito da un mattone. In questi 2 sprite NON mi piace come sono venute le gambe, quindi avevo pensato ad un'idea: quando Felix viene colpito dal mattone inizia a cadere, ma il mattone che l'ha colpito SPARISCE, lasciando posto ad uno sprite libero. Dunque invece di disegnare come al solito le gambe con 1 sprite multicolor, sarà possibile disegnarle con 2 sprite Hires, in modo da definire meglio le gambe (ho gia fatto gli sprite). Il problema è: per te è un problema switchare lo sprite delle gambe da 1mc a --> 2hires? oppure ci sono problemi di timing/sincronismo/etc ?
Quando ero piccino-picciò avevo realizzato una cosa del genere: avevo fatto un piccolo gioco dove un'automobile era composta da 2 sprite MC: 1superiore e 1inferiore (come felix), quando l'auto urtava qualcosa la parte anteriore diventava 'ammaccata', ma il nuovo sprite 'ammaccato' l'avevo disegnato in Hires (tanto non c'erano colori nell'ammaccatura), tutto funzionava bene, c'era solo un piccolo dettaglio fastidioso: nel momento in cui sostituivo lo sprite mc-'sano' con quello hires-'ammaccato' per un decimo di secondo appariva disegnato 2x1 pixel, cioè proprio nell'istante in cui cambiavo lo sprite e modificato il flag hires (il bit che identifica se lo sprite è mc o hires) il c64 per un brevissimo istante di tempo lo disegnava squadrato. Spero di essermi espresso bene! :P
E' passato del tempo, non ricordo il codice, però ti chiedo se potrebbe accadere la stessa cosa ora con felix, inoltre ti chiedo se gia sei a conoscenza di questo 'bug' del vicII... oppure ero io a commettere un errore ?



si dice "-1 Life" oppure "Life -1" ? :P

pippo79:
 Possiamo anche tenere tutto pubblico,come no.

Lo sprite color si può cambiare in esecuzione, certo.

Per quanto riguarda i tile va bene anche un tipo di tile non 4X4, vai tranquillo. Possibilmente 5X5 che si spartisce perfettamente le dimensioni dello schermo.
Il refresh dei caratteri si può fare tranquillamente a char singoli (certo, se non sono troppi nello stesso momento) quindi non c'è bisogno che costruisci dei tiles appositi.

La distribuzione degli sprites è ragionevole, per torta e omino alla finestra è opportuno usare i chars, e l'effetto fumo può essere anch'esso fatto con i chars.
La sostituzione dello sprite del mattone con le gambe si può fare e non è assolutamente un problema passare da multicolor ad hires.
Nel programma in cui ti visualizzava ancora la modalità grafica precedente tutto dipendeva da QUANDO cambiavi il bit, se viene temporizzato bene non si vede nulla.

Quando hai qualcosa con charpad o spritepad pronto mandamelo alla miaemail, che ti mando su messaggio privato! Ciao


Ah, l'ultima cosa! SEcondo me suona meglio -1 life

Turrican^:
 per il discorso del colore del cappello decidi tu, se farlo tramite il cambio di sprite (sono 3 cambi di sprite, in ordine: cappello bianco, azzurro, verde. che devi ciclare 2 volte, quindi 6(+1) cambi di sprite, te li ho gia disegnati, quello con il cappello azzurro ovviamente è quello di default) oppure puoi decidere di cambiare il colore direttamente da codice, in questo caso te la vedi tutta tu, magari gli fai ciclare 4 colori come nell'originale (aggiungendo il rosso all'ordine che gia ti ho dato, poi magari vedi tu come blinka meglio) però in questo caso abbiamo il side-effect che blinka anche il colore della MAGLIA, in quanto è colorata con la stessa penna (azzurra) con cui ho colorato il cappello :/ cambiando gli sprite questo non accade perchè negli sprite con il cappello che blink mi sono assicurato di utilizzare una penna diversa (è la penna che disegna le braccia, ma visto che le braccia sono 'coperte' dall'overlay allora alla fine non ti accorgi di nulla e blinka solo il cappello).

Ok, allora deciso, SOLO per le due immagini di Felix-[cadente] anzichè usare 1 sprite MC per le gambe usiamo 2 sprite HiRes.

Per l'immagine di GameOver visto che gli sprite 'spariscono' allora possiamo usare quanti sprite ci pare (naturalmente max 8 totali per ambedue le mani visto che si trovano nella stessa linea). Io avevo pensato di usare 4 sprite hires sovrapposti in modalità Double. ogni sprite 1 colore. Quindi sono 4+4 sprite HiRes/double.


--- Citazione ---Per quanto riguarda i tile va bene anche un tipo di tile non 4X4, vai tranquillo. Possibilmente 5X5 che si spartisce perfettamente le dimensioni dello schermo.

--- Termina citazione ---

mmm, lo schermo è di 40x25 char. Secondo me le soluzioni sono 2:
  (1) Tile composti da gruppi di 5x5 effettivamente rientrano esattamente come divisori dello schermo, sia orizzontalmente che verticalmente.
  (2) Tile composti da 4x4. Orizzontalmente sono un perfetto divisore di 40, mentre Verticalmente c'è una colonna che non verrà occupata (4char X 6tile = 24 colonne, la 25 rimarrà vuota). Ma questo non è un problema visto che la parte sinistra e destra dello schermo sono nere e PRIME di oggetti di tipo char (ad esclusione della nuvola e dell'aereo volante che segnala ogni volta che raggiungi un checkpoint di 5 piani).

cmq credo di optare per tile di 5x5.


--- Citazione ---per torta e omino alla finestra è opportuno usare i chars, e l'effetto fumo può essere anch'esso fatto con i chars.

--- Termina citazione ---

si, però, come ti dicevo, sia omino che torta non entrano dentro un singolo char! ne occupa almeno 2, mica ci sono problemi? poi dimmi tu se vuoi che ti consegno solo i 2 char per ogni frame della torta/omino oppure preferisci direttamtne un Tile con gia la torta/omino dentro di esso. Io non so se le tue routine di refresh sono orientate direttamente ai singoli char oppure tu refreshi con i Tile (o cluster di char, o quel che sia).


--- Citazione ---Nel programma in cui ti visualizzava ancora la modalità grafica precedente tutto dipendeva da QUANDO cambiavi il bit, se viene temporizzato bene non si vede nulla.

--- Termina citazione ---

Si, probabilmente sbagliavo il momento in cui fare il cambio, anche se ricordo che nonostante avessi fatto dei tentativi non riuscivo ad evitare questo difetto, ero arrivato alla conclusione fosse una limitazione del vic II.

...

cmq non mi hai risposto riguardo se posso usare o meno char sia in multicolor che hires! ci sono limitazioni per l'uso misto?

appena posso ti farò un mock-up del gioco.

--

Io direi di non mettere l'animazione di presentazione del gioco e anche l'animazione di completento del gioco/fase, richiederebbe troppo codice secondo me! io direi solo che al completamento di una fase appare una schermata nera con solo il testo centrato e lampeggiante "YOU FIXED IT!", seguito sottostante dal testo centrato bianco NON-lampeggiante "\n\n\n PHASE 1 \n\n COMPLETE", quindi una nuova schermata nera con il testo centrato "PREPARE FOR \n\n PHASE 2" seguito sottostante dallo sprite di Felix che impugna orgoglioso il matertello magico verso l'alto. Quindi poi riappare il gioco con la fase di gioco successiva.

--

OPTIONS:

se avrai voglia e tempo sarebbe carino aggiungere la voce OPTIONS nello schermo di titolo dove poter impostare le seguenti opzioni:

(1) Story mode [ON/OFF]:
 se OFF allora:
  come la versione Flash sul sito della Disney, il gioco prevede una sola fase, le vite sono 3, la torta ti aggiunge una vita, sulla schermata di titolo appare 'PRESS FIRE TO PLAY'.
 se ON allora:
  attiva la modalità Storia (NON presente nella versione flash, ma presente nel trailer del gioco arcade mostrato superficialmente durante il film).
  Il gioco è diviso in fasi, (la prima fase è composta da un palazzo di 5 piani, la seconda da 10 piani, la terza da 15 e così via!
  Le vite sono 5 anzichè 3.
  La torta NON ti dà una vita ma solo punti, tuttavia ogni volta che si completa un livello le vite vengono tutte ricaricate.
  Nella schermata di titolo invece di comparire 'PRESS FIRE TO PLAY' appare 'INSERT COIN' lampeggiante tra GIALLO E BIANCO.

(2) Game'n'Watch effect [ON/OFF]:
 se su OFF allora:
  Aggiunge la possibilità di far traslare Felix da una finestra all'altra, senza quell'effetto Giochi-Scacciapensieri che lo fa 'sparire e riapparire' a modo di led luminoso, anche perchè solo nella versione flash c'è questo effetto, nell'originale lo sprite di Felix viene trascinato nel movimento invece di scomparire/riapparire!

(3) Hi-score saving [ON/OFF]:

(4) Sound [ON/OFF]:

(5) ZX-Spectrum Suckin' [ON-only]:

--

ALCUNI FILMATI:

puoi vedere il cabinato usato come mockup nel film qui (la musica che si sente non ho verificato se è quella originale): ATTENZIONE, questa è la versione NON-GIOCABILE, è solo una DEMO!
youtube: Gxa_p_tULyE

mentre la versione giocabile la puoi vedere qui:
youtube: 6cvErIWbwZI

il trailer del film lo trovi qui, si sente anche il suono di inizio (starting tune):
youtube: SfjEwDQI4JA

questo è l'advert del gioco, ovviamente è una visione ipotetica di come sarebbe stato se realmente fosse esistito nel 1983 =)
youtube: wF_LJfwFsE4

spero si possano postare i link a youtube...

pippo79:
 Maremma quanto scrivi! Ora provo a rispondere a tutto.

Sì, i singoli chars possono essere o multicolor o hires, seza restrizioni (se non nei colori che sono solo 8).
Per quello che vuoi fare tu con il cappello del protagonista allora sì, credo che servano degli sprite speciali strutturati in modo da avere un solo colore dedicato solo per il cappello.

Ok per il gameover.

Per quanto riguarda i tiles, io fino ad ora ho sempre usato i 4x4 che non danno comunque alcun problema per il codice. Quindi usa i 5x5 solo ed esclusivamente se può far comodo a te.

Il refresh nel caso della torta andrà fatto con i singoli chars, quindi basta che nel charset me li metti. Se poi vuoi disegnare anche un tile illustrativo per me naturalmente ben venga, ma nel gioco cambierò i singoli chars.

Se vuoi essere proprio fedele tieni conto che la sequenza tra un livello e l'altro con lo scrolling verso l'alto si può fare, valuta tu.

Per le opzioni sono d'accordo su tutto, ma non capisco l'utilità di un saving score on/off... penso che è una feature che potremmo tenere semplicemente sempre attiva.

Non ho ancora modo di vedere i video perchè sono molto di fretta, cerco di vederli stasera.

Navigazione

[0] Indice dei post

[#] Pagina successiva

[*] Pagina precedente

Vai alla versione completa