我正在尝试将精灵和背景与devkitPro(包括 libnds、libarm 等)进行 alpha 混合。
有谁知道如何做到这一点?
作为一般参考,我曾经写过一篇关于该问题的小型博客文章。基本上,您首先必须定义哪个图层与哪个其他图层进行 alpha 混合。AFAIK,
对于精灵,具体来说,您可以通过 3 种方法来实现 alpha 混合,具体取决于您需要什么以及您“准备支付”的费用:
BLEND_SRC_SPRITE
...REG_BLDCNT[_SUB]
不是那么有用。ATTR0_TYPE_BLENDED
。所有精灵(和图层)的混合级别将相同ATTR2_PALETTE()
GBA 精灵的字段没用,已经被回收到ATTR2_ALPHA
.我已经很久没有进行任何 GBA 编程了,但我记得,DS 支持 GBA 支持的大部分(如果不是全部)东西。此链接有一节介绍如何为 GBA 进行 alpha 混合(第 13.2 节)。我不知道是否有特定于 DS 的方法,但这应该适合你。