我正在尝试用devkitPro (包括libnds,libarm等)来阿尔法混合精灵和背景。
有人知道怎么做吗?
发布于 2008-09-23 08:39:44
作为一个通用的参考,我曾经写过关于这个问题的a small blog entry。基本上,您首先必须定义哪个层与其他层进行alpha混合。Afaik
对于sprites, specifically,你有3种方法来实现alpha混合,这取决于你需要什么和你愿意为它付什么钱:
REG_BLDCNT[_SUB]中打开BLEND_SRC_SPRITE来让所有的精灵都有一些alpha混合...没那么有用。ATTR0_TYPE_BLENDED有选择地启用某些精灵的混合。所有精灵的混合级别都是相同的(并且GBA精灵使用直接颜色(绕过调色板),因此layers)ATTR2_PALETTE()字段是无用的,并已被回收到ATTR2_ALPHA.中
发布于 2008-08-14 00:32:58
DS上的精灵可以使用blend control registers进行alpha混合。TONC提供了使混合在主屏幕上工作所需的信息,因为寄存器位置是相同的。子屏幕上的Alpha混合使用相同的过程,在1000h偏移时使用不同的寄存器。
您将看到的寄存器是主屏幕的REG_BLDMOD、REG_COLV和REG_COLY,以及子屏幕的REG_BLDMOD_SUB、REG_COLV_SUB和REG_COLY_SUB。
还请记住,您将必须change the sprite's graphic mode以启用混合每个精灵。
https://stackoverflow.com/questions/7209
复制相似问题