我试图阿尔法混合的精灵和的背景 devkitPro (包括libnds,libarm等)。

没有人知道如何做到这一点?

有帮助吗?

解决方案

作为一个通用的参照,一旦我写了 一个小小的博客入口 关于这一问题。基本上,你首先必须确定哪一层是阿尔混针对其另一层(s)。据我所知,

  • 来源层(s)必须在目的地层(s)有一些混显示。这意味着优先权的来源层应数字低于优先的地层。
  • 来源层是什么将是半透明的,目的(s)为什么要看到通过(是的,我找到这个相当令人困惑).

精灵,具体地说, 你那么有3种方式来实现alpha-融合取决于你需要什么,什么你们"准备支付":

  • 你可以让所有的精灵具有一些阿尔法混合通过打开 BLEND_SRC_SPRITEREG_BLDCNT[_SUB] ...不是有用的。
  • 你可以选择地启混合一些精灵通过使用 ATTR0_TYPE_BLENDED.混合的水平将相同于所有的精灵(层)
  • bitmap型精灵直接使用的颜色(绕过色),所以 ATTR2_PALETTE() 领域GBA精灵是无用的,并已回收成 ATTR2_ALPHA.

其他提示

精灵在DS可alpha混合使用 尽控制寄存器.TONC提供必要的信息用于获取融合的工作在主屏幕上的,因为注册地点都是相同的。Alpha混合在子屏幕中使用的相同进程,与不同的寄存在一个1000小时抵消。

寄存器你将看 REG_BLDMOD, REG_COLV, , REG_COLY 对于主屏幕 REG_BLDMOD_SUB, REG_COLV_SUB, , REG_COLY_SUB 对于子屏幕上。

还记得,你只需要 改变角色的图形模式 为使混合每sprite.

这是一个 时间因为我已经做了任何GBA编程,但正如我回想一下,DS支持大多数(如果不是所有的)东西,GBA支持。 链接,有一个部分如何做到alpha blending为GBA(第13.2).我不知道如果有一个DS-的具体方式这样做,但这应该对你的工作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top