gpt4 book ai didi

android - drawBitmap 出现问题 - 源矩形和目标矩形

转载 作者:行者123 更新时间:2023-11-29 16:14:00 24 4
gpt4 key购买 nike

我有一个游戏,在其中一个关卡中,绵羊可能会被地雷炸毁。爆炸动画是通过在 512x515 png 文件中包含 4x4 爆炸图像阵列的 png 来控制的……见下文。

enter image description here

然后我使用以下代码为爆炸设置动画:

            exp_bitmap_number_to_draw = (int)(time_since_death / 100);

if (exp_bitmap_number_to_draw < 16)
{
explosion_dst_rect.left = b2sx(sheep_x[i]) - sheep_radius * 5;
explosion_dst_rect.right = b2sx(sheep_x[i]) + sheep_radius * 5;

explosion_dst_rect.bottom = b2sy(sheep_y[i]) + sheep_radius * 5;
explosion_dst_rect.top = b2sy(sheep_y[i]) - sheep_radius * 5;

explosion_src_rect.left = 128 * (exp_bitmap_number_to_draw % 4);
explosion_src_rect.top = 128 * (exp_bitmap_number_to_draw / 4);

explosion_src_rect.right = explosion_src_rect.left + 128;
explosion_src_rect.bottom = explosion_src_rect.top + 128;

canvas.drawBitmap(explosion_bitmap, explosion_src_rect, explosion_dst_rect, null);
}

其中 explosion_src_rect 是一个 Rect,explosion_dst_rect 是一个 RectF。 b2sx() 和 b2sy() 是将“运动场”上绵羊的绝对坐标转换为屏幕坐标的函数 - 它只是添加一个偏移量。

该代码在我试过的几款手机上都能完美运行,包括 nexus S 和 Galaxy S II。但是刚才一个 friend 在三星galaxy tab 8.9上试了一下代码,发现爆炸看起来很傻。他给我发了这个部分屏幕截图:

enter image description here

知道是什么原因造成的吗?

最佳答案

如果资源的密度不正确,系统会加载默认资源并根据需要放大或缩小它们以匹配当前屏幕的密度。在某些情况下,您可能不希望 Android 预缩放资源。避免预缩放的最简单方法是将资源放在带有 nodpi 配置限定符的资源目录中。例如:res/drawable-nodpi/icon.png。所以你必须把你的位图放到 `res/drawable-nodpi/ 文件夹中。看看:http://developer.android.com/guide/practices/screens_support.html

关于android - drawBitmap 出现问题 - 源矩形和目标矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10853808/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com