User Tools

Site Tools


content:retrocomputing:sprite

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
content:retrocomputing:sprite [2023/07/24 21:54] admincontent:retrocomputing:sprite [2023/08/15 14:45] – [Sprite animation e collision] admin
Line 159: Line 159:
 ===== 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 sprite... FIXME+Il seguente esempio è tratto dal libro //Commodore 64 Graphics and Sound//; è diverso rispetto al listato sopra, perché non ridefinisce gli sprite con un altro disegno, ma visualizza alternativamente due sprite, con due definizioni diverse per creare l'animazione, relative alla stessa figura (un alieno).
  
 +{{:sprite:sprite-aliens.png|}}
 ==== Definizione sprite ==== ==== Definizione sprite ====
  
Line 170: Line 171:
 150 poke2044,15 150 poke2044,15
 </file> </file>
 +
 +==== Spostamento e animazione ====
 +
 +Si tratta quindi di 4 sprite 'alieni' più l'ultimo (2044) che rappresenta una esplosione. In realtà vengono visualizzati solo 2 sprite alla volta, all'inizio gli **sprite 0 e 2** (definiti in 2040 e 2042), uno da un lato, l'altro dal lato opposto, con un'animazione 'a gambe aperte':
 +
 +<file>
 +255 rem move sprites 0 and 2
 +260 pokevc,x:pokevc+4,255-x
 +...
 +285 rem display sprites 0 and 2
 +290 pokevc+21,5
 +300 for t=1 to 200:next
 +</file>
 +
 +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):
 +
 +{{:sprite:vic-ii-sprite-x-pos.png|}}  
 +
 +Il registro 'vc+21=53269' tramite il quale vengono visualizzati solo gli **sprite abilitati**:
 +
 +{{:sprite:vic-22-sprite-enable.png|}}
 +
 +Poi vengono visualizzati gli sprite 1 e 3 (2041 e 2043) con un'animazione 'a gambe chiuse', un po' più avanti nella direzione 'x':
 +
 +<file>
 +305 rem move sprites 1 and 3
 +310 pokevc+2,x+4:pokevc+6,251-x
 +...
 +335 rem display sprites 1 and 3
 +340 pokevc+21,10
 +350 for t=1 to 200:next
 +</file>
 +
 +L'effetto è quello di dare un'animazione a due alieni che si avvicinano, per poi scontrarsi. Di seguito il **listato completo**:
  
 <file> <file>
content/retrocomputing/sprite.txt · Last modified: 2023/08/15 14:54 by admin