我只需要知道哪种方法可以通过int LeadingZeroCount(long value) {
// http://en.wikipedia.org/wiki/Hamming_weight
unsigned long x = value;
x |= (x >> 1); x |= (x >> 2); x |= (x >> 4);
x |= (x >> 8); x |= (x >> 16); x |= (x >> 32);
x -= (x >> 1) & 0x5555555555555555;
x = (x & 0x3333333333333333) + ((x >> 2) & 0x3333333333333333);
x = (x + (x >> 4)) & 0x0F0F0F0F0F0F0F0F;
x += x >> 8; x += x >> 16; x += x >> 32;
return (sizeof(value) << 3) - (x & 0x7F);
}
int MostSignificantBit(long value) {
return (sizeof(value) << 3) - LeadingZeroCount(value);
}
int BitsNeededUnsigned(unsigned long value) {
return MostSignificantBit(value);
}
int BitsNeededTwosComplement(long value) {
if (value < 0)
return BitsNeededUnsigned(-value - 1) + 1;
else
return BitsNeededUnsigned(value);
}
int main() {
printf("%d\n", BitsNeededUnsigned(243));
printf("%d\n", BitsNeededTwosComplement(243));
printf("%d\n", BitsNeededTwosComplement(-56));
return 0;
}
类和Animation
更改框架的位置:
我创建了一个libgdx
个对象,其中有很多Animation
,我找到了这个解决方案来更新渲染方法中帧的位置:
TextureRegions
这将动画的每一帧按顺序绘制在不同的位置; 这是一个很好的解决方案或存在更好的东西? 感谢。
答案 0 :(得分:0)
初始化动画对象后,只需使用getKeyFrame方法获取当前帧并使用批处理绘制它:
TextureRegion currentFrame = animation.getKeyFrame(Gdx.graphics.getDeltaTime(), true);
batch.draw(currentFrame, 0, 0);