J'essaye de mélanger les sprites alpha et arrière-plans avec devkitPro (y compris libnds, libarm, etc.).Alpha mélangeant sprites dans Nintendo DS Homebrew
Est-ce que quelqu'un sait comment faire cela?
J'essaye de mélanger les sprites alpha et arrière-plans avec devkitPro (y compris libnds, libarm, etc.).Alpha mélangeant sprites dans Nintendo DS Homebrew
Est-ce que quelqu'un sait comment faire cela?
En tant que référence générique, j'ai déjà écrit a small blog entry à propos de ce problème. Fondamentalement, vous devez d'abord définir quelle couche est alpha-mélangée par rapport à quelle autre couche (s). Afaik,
Pour le sprites, specifically, alors vous avez 3 façons d'atteindre l'alpha-mélange en fonction de ce que vous avez besoin et ce que vous êtes « prêt à payer » pour elle:
BLEND_SRC_SPRITE
en REG_BLDCNT[_SUB]
... pas si utile.ATTR0_TYPE_BLENDED
. Le niveau de fusion sera le même pour tous les sprites (et couches)ATTR2_PALETTE()
des sprites GBA est donc inutile et a été recyclé en ATTR2_ALPHA
.Cela fait long temps depuis que j'ai fait de la programmation GBA, mais si je me souviens, la DS prend en charge la plupart (sinon tous) les choses que GBA prend en charge. This lien a une section sur la façon de faire l'alpha-mélange pour GBA (section 13.2). Je ne sais pas s'il existe une façon spécifique à DS de le faire, mais cela devrait marcher pour vous.
Les sprites sur le DS peuvent être alpha mélangés en utilisant le blend control registers. TONC fournit les informations nécessaires pour que le mélange fonctionne sur l'écran principal car les emplacements des registres sont les mêmes. Le mélange Alpha sur le sous-écran utilise le même processus avec différents registres à un décalage de 1000h.
Les registres vous regarderons sont REG_BLDMOD
, REG_COLV
et REG_COLY
pour l'écran principal et REG_BLDMOD_SUB
, REG_COLV_SUB
et REG_COLY_SUB
pour l'écran secondaire.
Rappelez-vous également que vous devrez change the sprite's graphic mode pour activer la fusion par image-objet.
Trop spécifique à la GBA – CVertex