【发布时间】:2013-12-21 16:15:58
【问题描述】:
您好,我创建了这个函数,用于将游戏世界分成块。 每个块的大小为 32 个块。 该公式计算给定世界坐标的给定块编号的起始坐标。它工作得很好,但我认为可以优化它,但我不知道。该公式适用于负数,这一点很重要。
static int wrld2chnk(int wrld)
{
if (wrld % 32 != 0)
{
if (wrld < 0)
wrld -= (32 + wrld % 32);
else
wrld -= wrld % 32;
}
return wrld;
}
// 这些是可用于验证结果的示例值。每个rpw中的第一个值是方法输入,第二个是输出:
(0, 0);
(31, 0);
(32, 32);
(33, 32);
(-1, -32);
(-31, -32);
(-32, -32);
(-33, -64);
(-34, -64);
(-64, -64);
(-70, -96);
【问题讨论】:
-
这和刚才
wrld & -32是一样的 -
请验证我的解决方案是否有效..??
标签: math optimization integer