[zxspectrum] Re: sprite con lo spectrum

  • From: "Andrea Gasparrini" <andreagasparrini@xxxxxxxxxxx>
  • To: <zxspectrum@xxxxxxxxxxxxx>
  • Date: Wed, 10 Mar 2004 08:59:52 +0100

Ho visto che per muvore gli sprite o caratteri si usa PRINT AT e per le
collisioni ATTR, ma usando questo e muovendo troppe cose sulle schermo il
gioco andrebbe a scatti come sugli MSX, quindi bignognerebbe ricorrere agli
indirizzi PEEK e POKE per guadagnare velocità, difatti sui commodore che ci
sono solo POKE e PEEK ma i giochi sono molto più veloci.
Per caso tu conosci le tabelle delgi indirizzi per codice video spectrum??

Ciao
Andrea



----- Original Message -----
From: "Alfonso Martone" <a.martone@xxxxxxxxxxx>
To: <zxspectrum@xxxxxxxxxxxxx>
Sent: Wednesday, March 10, 2004 12:42 AM
Subject: [zxspectrum] Re: sprite con lo spectrum


> > Volevo sapere come funzionano gli sprite con lo spectrum,
>
> Quelli che vedi nei giochi non sono "sprite" ma bitmap disegnate di
> volta in volta in un punto qualsiasi dello schermo.
>
> Se lo Spectrum avesse avuto uno sprite controller, in 48k ci sarebbero
> entrati dei giochi ancora piu' impressionanti...!
>
> Se per ipotesi lo sprite controller ti si brucia mentre stai giocando,
> sullo schermo ti rimane la mappa del gioco ma spariscono tutti gli
> omini e le parti in movimento :-) Uno sprite controller, infatti,
> sovrappone (!) all'immagine da tracciare a video, un pezzo di bitmap.
> "Se il pennello video e' alla linea 143 e pixel 101 allora non
> tracciare quello che troveresti nella pagina di RAM video ma traccia il
> terzo pixel della quarta linea dello sprite 6". Dunque se sparisce lo
> sprite, non si cancella neppure un bit di quello che c'era sotto
> (perche' semplicemente non era visualizzato).
>
> La cosa si complica se lo sprite controller deve gestirli "a colori".
> Per questo il grosso degli home computer, quando ce li aveva, ce li
> aveva monocromatici (nel senso che per esempio poteva dire che i bit
> "zero" corrispondevano al rosso - o al trasparente - e i bit a "uno"
> corrispondevano al verde; tenendo sempre sovrapposti due sprite di
> colore diverso, si poteva fare qualche "effetto speciale"...).
>
> Alcuni sprite controller avevano addirittura la "collision detection",
> cioe' se due sprite si toccano anche per un solo pixel (i pixel
> dichiarati "trasparenti" non contavano), allora il processore puo'
> saperlo senza andarsi a confrontare tutte le "bounding box" degli
> sprite.
> In parole povere, dato uno sprite controller con le caratteristiche
> citate, un gioco come Manic Miner puo' essere tirato su anche su uno
> Spectrum a 0,98 megahertz (e sono stato assai generoso: probabilmente
> basta ancor meno potenza, giacche' a quel punto il microprocessore deve
> solo dire dove possono andare gli sprite ed aggiornare il punteggio).
>
> Il guaio e' che a suo tempo gli "sprite" piu' comuni erano di 8x8 pixel
> pixel o 16x16 pixel. Il C64 li aveva da 21x24 pixel, ma ne visualizzava
> solo otto contemporaneamente, per cui il resto dell'animazione a video
> (se ce n'era) andava fatto disegnando bitmap (pensa agli Atari 800, con
> otto sprite monocromatici a 8x8 pixel e senza collision detection!!!
> beh, sempre un filino piu' comodi dello Spectrum, sprovvisto di sprite)
>
> Gli UDG erano solo caratteri grafici ridefinibili, non erano sprite. Uno
> sprite si puo' piazzare a partire da un qualunque pixel dello schermo.
> Per piazzare un UDG 8x8 e risparmiarti i calcoli intermedi, hai bisogno
> di otto versioni di questo udg (una che comincia al bit 0, una al bit
> 1, etc), ognuna di 16 byte (occupano tutte due byte, ad eccezione di
> quella che comincia al bit 0). Le scanline verticali sono a indirizzi
> fissi per cui ci si puo' giostrare con una tabella di indirizzi
> precalcolati (senza scomodare la routine della PLOT della ROM).
>
> E Miner Willy e' alquanto piu' grosso di un paio di UDG...!
>
> Siccome lo sprite controller e' indipendente dalla memoria video, allora
> non si pone neppure il problema del colour clash (lo sprite controller
> traccia il "proprio" sprite al posto dei colori che ci sarebbero stati
> "sotto").
>
> p.s.: nel 1987 restai assai sorpreso nel vedere che il mio tanto
> agognato PC compatibile funzionava ordinariamente in un "modo testo";
> ero abituato allo Spectrum (che non necessitava di inizializzazioni
> grafiche e comandi vari; la grafica c'era sempre, bastava scrivere in
> una certa area perche' qualche pixel apparisse o sparisse dal video!!!)
> e al QL (che, "mode 8" o "mode 4", sempre lo stesso concetto era!!).
>
>



Other related posts: