Diario Novembre 2018
03.11.2018
ho eliminato il loading del file e33.01, quindi anche la routine del load (più spazio libero)
Scrivendo con Raffox ho programmato la prima bozza dell'effetto illuminazione nel pannello di status...
non è male, ma probabilmente ci tornerò sopra dato che, con ogni probabilità, i caratteri hires lasceranno spazio ad
una ben più colorita e versatile immagine Bitmap
non so come farò con i caratteri che disegnano l'arma in uso, non so se dovrò cambiare banco dato che avevo previsto di usare
la memoria video base per il titolo, per le scritte a video durante il gioco ecc...
vedremo...
per ora cerco di proseguire con i movimenti...
04.11.2018
riscrivendo la routine dei movimenti ho notato che non posso usare lo sprite-flipping per Tallus,
il carico di lavoro è troppo oneroso per la cpu, perdo un intero frame...
per ora proseguo normalmente, poi, una volta terminato vedrò se riuscirò a suddividere la routine di flipping e inserirla
...magari...
nell'interrupt...
ok, dx e sx il movimento è pressochè perfetto...
ho riscritto tutto ed ora ho i risultati desiderati...
la routine è forse un po più complessa (incasinata) di quella originale, ma funziona...
ora funziona con puntatori e lavora in priorità sulle gambe.... è anche già predisposta per accettare variabili come
is_falling, is_jumping, ecc.
anche le collisioni sembrano lavorare bene... sono felice...un po di rammarico per il flipping ma cmq felice...
anche il riconoscimento del tasto fuoco è a posto... e ormai è passata la mezzanotte...
05.11.2018
continuo a ripensare a Soulless... ho detto una sciocchezza:
l'area di gioco è maggiore (il pannello inferiore è più piccolo rispetto a Moonshadow)
quindi credo che la velocità sia uguale... però il sistema è molto furbo e pratico... non me la sento di modificare
nuovamente la routine, le mappe, tutto... però... probabilmente donerebbe spazio prezioso...
cmq è geniale questo sistema... mi rimangio quello che ho detto: si possono ottenere ambienti decisamente vari ed interessanti...
molto più versatile del sistema a blocchi fissi...
Endurion è Endurion
07.11.2018
ho lavorato tutto ieri sugli interrupt... ora sono ad un punto in cui, forse, posso utilizzare lo sprite-flipping, ma per ora è
disabilitato, lo proverò una volta che la gestione dei movimenti sarà completa e i nemici saranno sullo schermo...
questo perchè dovrò cambiare nuovamente tutti i puntatori agli sprite...
finita la routine abbassarsi: è ok... funziona bene e i due sprite non si distaccano durante lo spostamento...
sono ora alla metà della routine del salto... funziona bene... per ora...
sono stanco però... sono già le due del mattino...
08.11.2018
il salto dritto funziona egregiamente...
anche le collis funzionano (per ora solo su salto dritto verso il basso)
mi sa che ho riscritto la stessa routine perchè ho lo stesso errore:
se salto e poi premo verso il basso le gambe sono ok
(perchè ho modificato lo spirte) ma il busto è più in su di 8 pixel...
09.11.2018
per scongiurare tutti gli errori possibili sto aggiungendo un sacco di variabili...
lo sapevo che sarebbe stato un lavoraccio...
mi sa che ho risolto anche il problema di quando salti mentre sei abbassato...
proseguo ora con la routine di caduta (se gli togliamo il pavimento da sotto i piedi, per esempio)
cambio di programma...al momento ho continuato con la gestione delle stanze...
ora swappa bene anche in alto (non era ancora implementata)...
appena finito la gestione della caduta saprò se anche la routine stanza_giu funziona a dovere...
però sono davvero soddisfatto... ho ottenuto, fin'ora, delle routine davvero stabili...
ed il gioco comincia dalla locazione giusta...non più dalla stanza numero 1...
è diventato tutto un casino...
devo rilocare di nuovo tutto nel banco 4000-7fff uffaaaa......
ho finito ora di rilocare parte delle memorie e dei puntatori...
le stanze funzionano di nuovo... ma ho problemi coi colori
10.11.2018
sono le 18:28... ho finito ora di spostare tutto a $4000
ora posso rimettermi al lavoro sulle collisioni con i caratteri...
mi spiego meglio:
la soluzione che avevo adottato prevedeva la memoria video a $f400
e per leggere il carattere sotto ai piedi di Tallus,
per verificare le collisioni,
dovevo necessariamente mettere la routine di estrapolazione del carattere in interrupt.
questo perchè
il Kernal doveva essere disabilitato quindi, durante l'irq,
potevo leggere il carattere senza rallentamenti dovuti ad un SEI...
tutto questo spostamento ha una spiegazione mooooolto semplice:
non sono capace di costruire una catena di irq con il Kernal disattivato.
quindi,
avendo necessità di estrapolare il carattere sotto i piedi più e più volte in funzione della y di Tallus,
va da sè che una sola lettura durante l'irq non era sufficiente.
ecco il motivo vero della rilocazione!
userò il banco 0 ($c000-$ff00) come archivio e per decomprimere sprite e stanze...
se ci riesco...
ho appena finito di riscrivere le routine di estrapolazione carattere sotto i piedi...
le divisioni erano sbagliate... MSB
riguardo i caratteri che costituiscono collisione, nell'originale, ho notato che sono in ordine sparso:
uno qua e uno là... non so perchè... io farò diverso... ovvero:
lascierò i primi 128 caratteri senza valore, da 127 a 191 per creare i pavimenti e da 191 a 255 per i muri...
così un semplice bcc o bcs mi alleggeriscono dall'uso di un'altra lookup-table...
ovviamente questi valori sono a titolo indicativo... giusto per chiarire il concetto...
so che, eventualmente, farci un trainer diventa incredibilmente facile:
basta cambiare un valore e Tallus può agevolmente passare attraverso i muri...
ma non è destinato alla vendita... ;-)
12.11.2018
ho avuto troppi problemi da risolvere (non inerenti il gioco) e quindi mi sono dovuto astenere da Moonshadow 2...
spero di avere adesso un po di tempo per andare avanti.
13.11.2018
ho finito la routine che visualizza l'oggetto selezionato , all'interno del pannello sotto
non sono soddisfatto ma cmq va già bene...
15.11.2018
ho avuto davvero poco tempo a disposizione...
proseguo a singhiozzo...
e questo non mi piace ma purtroppo non posso fare null'altro...
ok finalmente le routine di caduta in corsa e normale sono terminate...
(manca solo controllo collisioni con muri)
ora lavoro sul salto diagonale...
16.11.2018
uffaaaaa mi sa che è meglio se ricomincio da capo...non sono per nulla soddisfatto...
credo che mollerò lì per il momento...
devo creare un paio di programmi per modificare i caratteri nei blocchi...
(mi serve per le collisioni: pavimento, muri, ecc)
17.11.2018
il programma l'ho scritto e funziona anche bene... ma credo che non mi servirà...
mi sto creando uno screenmaster su pc.. poichè è troppo lungo creare blocchi e mappe su c64
18.11.2018
ok, ricostruire uno screenmaster non serve... la versione 2 di charpad è ottimale...
ho importato tutto e da qui riesco a fare quello che devo...
ho una visione chiara dei blocchi e devo ammettere che ce ne sono diversi inutilizzati.
per disegnare le mappe di gioco userò screenmaster originale ma con alcune modifiche: aggiungerò un tasto "c" per ciclare i colori
dei blocchi (ora esiste un blocco uguale ma con colore diversro) e un tasto "b" per cambiare il blocco on the fly...
per rispetto credo che eliminerò la statua del gargoyle blu...
penso che a Paolo Galimberti sia costata molta fatica e credo sia una cosa davvero sua personale...
(gli ha dedicato ben 3 blocchi e più di 40 caratteri)
tirando le somme:
caratteri vuoti = 50
blocchi liberi = 73
19.11.2018
sto lavorando alla conversione del set di caratteri e alla rilocazione dei blocchi con il programmino che mi sono scritto...
liberato tutto... e raggruppato i caratteri divisi tra solidi (ove camminare) e null (background)
20.11.2018
volevo provare a disegnare un blocco e vedere come sta... tombe e croci son venute abbastanza bene... però ho notato che potrei
modificare il multicolor per la stanza durante la sua creazione ottenendo così una gamma maggiore di colori...
ho provato solo a sostituire il rosa con il grigio medio... è bello... ma non ovunque...
21.11.2018
dovrò modificare lo status in alto.. ci sono troppi difetti che non mi piacciono per niente...
altro lavoraccio... ma guadagno 3 sprite e due caratteri... magari dovrei mettere 6 oggetti... boh vediamo...
23.11.2018
ho commesso un grosso errore nel calcolo delle collisioni col pavimento mentre corre
e per risolverlo,
sto riscrivendo dall'inizio la routine di caduta...
mooooolto laborioso....
25.11.2018
sto riscrivendo la routine di estrapolazione row (riga sotto piedi)
ho finito ma non sono ancora convinto... la routine di salto però ora è perfetta...
26.11.2018
sono ad un ottimo punto... funziona quasi tutto perfettamente...
credo che caricherò le routine di rilevamento column and row su Ready64 nella rubrica "pillole di programmazione"
poichè le ritengo davvero veloci e precise...
(ovviamente, prima, qualche esperto dovrà valutarne la qualità)
tutto perfetto... salto, salto diagonale, caduta, tutto perfetto...
sono soddisfatto..
mi rimane solo da sistemare il frame dello sprite...
c'è stato un momento di disperazione in cui avrei voluto abbandonare tutto... davvero...
poi ho deciso di riscrivere tutto dall'inizio e le cose piano piano funzionavano..
ora ho ottenuto una gestione dei movimenti (collisioni comprese) migliori dell'originale... sono soddisfatto...
27.11.2018
oggi inizierò, forse, a costruire le routine dei nemici...
popolamento stanze, tipo nemico ecc...
questo sarà abbastanza semplice come lavoro...
la cosa che mi porterà via molto tempo credo sarà la gestione dello sparo...
però sono così contento di ciò che ho ottenuto fino ad ora...
ho bisogno di ordine...
ora pulirò il codice dalle routine inutilizzate,
poi sistemerò le collisioni con i muri (ancora assenti)
poi devo scrivere la routine dello sparo
e solo dopo potrò iniziare coi nemici porte e oggetti...
-ok... ora è moooolto più pulito...
-ok... ora funziona anche la collisione muri....
comincio ad essere stanco...
troppi problemi da risolvere (non inerenti il gioco)...
testa piena...
uffa
28.11.2018
devo rimodificare il set di caratteri per ovviare al problema delle scale
(non ci si può saltare sopra in diagonale altrimenti si rimane bloccati)
piano piano sta prendendo la forma che desideravo da sempre...
le collisioni sono giuste...
finalmente....
il rischio di rimanere imbrigliati dentro le pietre non esiste più...
(OFFTOPIC: credo che l'idea originale fosse che Tallus dovesse essere sprovvisto di armi all'inizio, per poi trovare il pugnale
solo nella terza stanza in cima alle scale... non so perchè sia stato modificato ma sono certo che dovesse essere così...
ho visto da tempo lo sprite del pugnale ma solo più avanti ho capito dove doveva essere posizionato...
probabilmente, dato il placcato raffigurante Tallus con la spada presente nella confezione,
un pugnale, non fosse esattamente un gran chè da trovare;
cmq posterò più tardi un paio di foto )
29.11.2018
ho provato a reimplementare lo spriteflipping ma i rallentamenti, ora,
son fin troppo evidenti... niente spriteflipping in realtime...
Qui il link all'ultima versione... giusto per testare movimenti e collisioni
http://darkerror.byethost16.com/00_cade_1_perfekt.prg