[zxspectrum] Re: Demo finale!

  • From: Massimo Raffaele <massimo.raffaele@xxxxxxxxx>
  • To: zxspectrum@xxxxxxxxxxxxx
  • Date: Tue, 4 Feb 2020 20:37:12 +0100

Il giorno mar 4 feb 2020 alle ore 09:58 Enrico Maria Giordano <
e.m.giordano@xxxxxxxxxxxxxxx> ha scritto:

Il 04/02/2020 02:18, Massimo Raffaele ha scritto:

Dimenticavo: uso della tecnica del preshift per gli sprite. Occupa
spazio ma per una demo va bene.

E' una tecnica facile da spiegare a chi, come me, non mastica l/m?

Sì. Praticamente, immagina di aver definito un tuo disegnino (sprite) in
memoria con una serie di 1 e 0 (1 per il disegnino e 0 per lo sfondo).
Quando trasferisci questo sprite sul video ovviamente dovrai metterlo in
un punto preciso della memoria. Ora, se parliamo del singolo carattere
non ci sono problemi perché un byte dello sprite va in un byte del
carattere e hai finito. Ma se lo sprite deve comparire spostato rispetto
al carattere (non alle coordinate 0, 8, 16, 32, etc. ma ad una
coordinata qualunque) allora non sarà più sufficiente mettere lo sprite
nella memoria video ma bisognerà spostare i singoli bit in modo che
vadano alla coordinata giusta. Questo però richiede tempo e quindi ho
preferito definire 8 sprite uguali ma già spostati uno rispetto
all'altro in modo tale che basta scegliere quello giusto in base alla
coordinata e poi copiarlo in memoria.


Ah, chiarissimo!


Questa tecnica consente anche
l'animazione dello sprite: basta disegnare gli 8 sprite come fotogrammi
dell'animazione e il resto è automatico.


Capisco... e in quel caso bisogna avere l'accortezza di usare come sprite
successivo (spostato di un pixel) quello successivo dell'animazione, giusto?
Max

Other related posts: