使用以下代码,我应该能够执行 WC_InterpolateColor(0xFF0000, 0xFFFF00, 0.5) 并获得介于指定的两种颜色之间的颜色(在这种情况下为红色和黄色)。pos 值应介于 1.0 和 0.0 之间。代码显然没有完成,我不知道下一步该去哪里。有没有其他人尝试过做这样的事情?有人可以告诉我如何正确地做到这一点吗?现在代码总是返回结束颜色(在这种情况下为黄色)。提前谢谢,请解释一下,以便我从中学习。
WC_InterpolateColor(start, end, Float:pos) {
new start_bytes[1], end_bytes[1];
start_bytes[0] = start;
end_bytes[0] = end;
for (new i = 0; i < 4; i++) {
start_bytes{i} = floatround(start_bytes{i} * (1.0-pos) + end_bytes{i} * pos);
}
return end_bytes[0];
}
附言。使用的语言是 Pawn,一种与 C++ 非常相似的语言。关键字 new 就像 int 或 float,在本例中为 int。