content:retrocomputing:sprite
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
content:retrocomputing:sprite [2023/07/24 21:06] – [Definizione] admin | content:retrocomputing:sprite [2024/06/02 15:57] (current) – [Colore] admin | ||
---|---|---|---|
Line 6: | Line 6: | ||
===== Registri ===== | ===== Registri ===== | ||
+ | |||
+ | ==== Schema ==== | ||
+ | |||
+ | Di seguito uno schema che elenca le locazioni di memoria, specificate più sotto, che definiscono gli sprite: | ||
+ | |||
+ | ^ ^Sprite X^Sprite Y^Sprite Pointer^Sprite Colore^ | ||
+ | ^Sprite 0|$D000 | ||
+ | ^Sprite 1|$D002 | ||
+ | ^Sprite 2|$D004 | ||
+ | ^Sprite 3|$D006 | ||
+ | ^Sprite 4|$D008 | ||
+ | ^Sprite 5|$D00A | ||
+ | ^Sprite 6|$D00C | ||
+ | ^Sprite 7|$D00E | ||
+ | |||
+ | |||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
==== Attivazione ==== | ==== Attivazione ==== | ||
Line 24: | Line 51: | ||
</ | </ | ||
- | < | + | < |
==== Posizionamento ==== | ==== Posizionamento ==== | ||
Line 45: | Line 72: | ||
=== Multicolore === | === Multicolore === | ||
- | La modalità **multicolore** prevede, oltre al colore principale dello sprite, anche **due colori aggiuntivi, condivisi da tutti gli sprite**. Si usano i **registri 53285, 53286 e 53276**: | + | La modalità **multicolore** prevede, oltre al colore principale dello sprite, anche **due colori aggiuntivi, condivisi da tutti gli sprite**. Si usano i **registri 53285 ($D025), 53286 ($D026) |
< | < | ||
Line 56: | Line 83: | ||
=== Colore principale === | === Colore principale === | ||
- | Il **colore principale** si setta nei **registri 53287-53294**, | + | Il **colore principale** si setta nei **registri 53287-53294 |
==== Definizione ==== | ==== Definizione ==== | ||
Line 159: | Line 186: | ||
===== Sprite animation e collision ===== | ===== Sprite animation e collision ===== | ||
- | Il seguente esempio è tratto dal libro //Commodore 64 Graphics and Sound//; | + | Il seguente esempio è tratto dal libro //Commodore 64 Graphics and Sound//; |
+ | |||
+ | {{: | ||
+ | ==== Definizione sprite ==== | ||
+ | |||
+ | Vengono **definiti i dati di 5 sprite**, usando alcune locazioni di memoria a partire da (13*64=)832. Questa area è in realtà il //cassette buffer//, per cui se si usa il registratore, | ||
+ | |||
+ | < | ||
+ | 130 poke2040, | ||
+ | 140 poke2042, | ||
+ | 150 poke2044, | ||
+ | </ | ||
+ | |||
+ | ==== Spostamento e animazione ==== | ||
+ | |||
+ | Si tratta quindi di 4 sprite ' | ||
+ | |||
+ | < | ||
+ | 255 rem move sprites 0 and 2 | ||
+ | 260 pokevc, | ||
+ | ... | ||
+ | 285 rem display sprites 0 and 2 | ||
+ | 290 pokevc+21, | ||
+ | 300 for t=1 to 200:next | ||
+ | </ | ||
+ | |||
+ | I registri nel VIC-II per le **posizioni X degli sprite 0-3** (vc=53248, vc+2=53250, vc+4=53252 e vc+6=53254): | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Il registro ' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Poi vengono visualizzati gli sprite 1 e 3 (2041 e 2043) con un' | ||
+ | |||
+ | < | ||
+ | 305 rem move sprites 1 and 3 | ||
+ | 310 pokevc+2, | ||
+ | ... | ||
+ | 335 rem display sprites 1 and 3 | ||
+ | 340 pokevc+21, | ||
+ | 350 for t=1 to 200:next | ||
+ | </ | ||
+ | |||
+ | L' | ||
< | < | ||
Line 183: | Line 255: | ||
230 pokevc+43, | 230 pokevc+43, | ||
240 for n=1 to 10 | 240 for n=1 to 10 | ||
+ | 241 print chr$(147) | ||
+ | 242 print" | ||
+ | 243 print" | ||
+ | 244 print " | ||
250 for x=0 to 130 step 8 | 250 for x=0 to 130 step 8 | ||
255 rem move sprites 0 and 2 | 255 rem move sprites 0 and 2 | ||
260 pokevc, | 260 pokevc, | ||
+ | 261 print " | ||
+ | 262 print " | ||
265 rem check for collision | 265 rem check for collision | ||
270 cd=peek(vc+30) | 270 cd=peek(vc+30) | ||
Line 191: | Line 269: | ||
285 rem display sprites 0 and 2 | 285 rem display sprites 0 and 2 | ||
290 pokevc+21,5 | 290 pokevc+21,5 | ||
- | 300 for t=1 to 200:next | + | 300 for t=1 to1000:next |
305 rem move sprites 1 and 3 | 305 rem move sprites 1 and 3 | ||
+ | 306 print " | ||
+ | 307 print " | ||
310 pokevc+2, | 310 pokevc+2, | ||
315 rem check for collision | 315 rem check for collision | ||
Line 199: | Line 279: | ||
335 rem display sprites 1 and 3 | 335 rem display sprites 1 and 3 | ||
340 pokevc+21, | 340 pokevc+21, | ||
- | 350 for t=1 to 200:next | + | 350 for t=1 to1000:next |
360 next x | 360 next x | ||
365 rem display explosion sprite 4 | 365 rem display explosion sprite 4 | ||
Line 205: | Line 285: | ||
380 pokevc+23, | 380 pokevc+23, | ||
390 pokevc+21, | 390 pokevc+21, | ||
+ | 400 for t=1 to 1000:next | ||
+ | 410 pokevc+21, | ||
+ | 420 for t=1 to 500:next | ||
+ | 430 next n | ||
+ | 440 end | ||
400 for t=1 to 1000:next | 400 for t=1 to 1000:next | ||
410 pokevc+21, | 410 pokevc+21, |
content/retrocomputing/sprite.1690225567.txt.gz · Last modified: 2023/07/24 21:06 by admin