Ich versuche, Alpha-Blend-Sprites und Hintergründe mit devkitPro (einschließlich libnds, libarm, usw.).
Weiß jemand, wie man das macht?
Ich versuche, Alpha-Blend-Sprites und Hintergründe mit devkitPro (einschließlich libnds, libarm, usw.).
Weiß jemand, wie man das macht?
Als allgemeine Referenz habe ich einmal geschrieben ein kleiner Blogeintrag über dieses Thema. Grundsätzlich müssen Sie zunächst festlegen, welche Ebene mit welchen anderen Ebenen alpha-blended ist. Afaik,
Für die Sprites, insbesondere Sie haben dann 3 Möglichkeiten, Alpha-Blending zu erreichen, je nachdem, was Sie brauchen und was Sie bereit sind, dafür zu bezahlen:
BLEND_SRC_SPRITE
sur REG_BLDCNT[_SUB]
... nicht sehr nützlich.ATTR0_TYPE_BLENDED
. Die Überblendungsebene wird für alle Sprites (und Ebenen) gleich seinATTR2_PALETTE()
Feld der GBA-Sprites ist nutzlos und wurde in ATTR2_ALPHA
.Sprites auf dem DS können mit der Funktion "Alpha-Blending" überlagert werden. Mischsteuerungsregister . TONC liefert die notwendigen Informationen, damit das Überblenden auf dem Hauptbildschirm funktioniert, da die Registerpositionen identisch sind. Die Überblendung von Alphabildern auf dem Nebenbildschirm erfolgt nach demselben Verfahren mit anderen Registern mit einem Offset von 1000h.
Die Register, die Sie sich ansehen werden, sind REG_BLDMOD
, REG_COLV
et REG_COLY
für den Hauptbildschirm und REG_BLDMOD_SUB
, REG_COLV_SUB
et REG_COLY_SUB
für das Teilbild.
Denken Sie auch daran, dass Sie Folgendes tun müssen den Grafikmodus des Sprites ändern um das Überblenden pro Sprite zu aktivieren.
Es war ein lang Es ist schon eine Weile her, dass ich für den GBA programmiert habe, aber wenn ich mich recht erinnere, unterstützt der DS die meisten (wenn nicht alle) Dinge, die der GBA unterstützt. Diese Link gibt es einen Abschnitt über das Alpha-Blending für GBA (Abschnitt 13.2). Ich weiß nicht, ob es einen DS-spezifischen Weg, es zu tun, aber dies sollte für Sie arbeiten.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.