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/29 22:54] – 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//; è diverso rispetto al listato sopra, perché non ridefinisce gli stessi | + | Il seguente esempio è tratto dal libro //Commodore 64 Graphics and Sound//; è diverso rispetto al listato sopra, perché non ridefinisce gli sprite |
+ | {{: | ||
==== Definizione sprite ==== | ==== Definizione sprite ==== | ||
Line 184: | Line 212: | ||
</ | </ | ||
- | I registri nel VIC-II per le **posizioni X degli sprite 0-4** (vc=53248, vc+2=53250, vc+4=53252 e vc+6=53254): | + | 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): |
{{: | {{: | ||
Line 192: | Line 220: | ||
{{: | {{: | ||
- | Poi vengono visualizzati | + | Poi vengono visualizzati gli sprite 1 e 3 (2041 e 2043) con un' |
< | < | ||
Line 225: | Line 253: | ||
210 pokevc+39, | 210 pokevc+39, | ||
220 pokevc+41, | 220 pokevc+41, | ||
- | 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 235: | 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 243: | 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 249: | 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.1690664089.txt.gz · Last modified: 2023/07/29 22:54 by admin