Android 比较位图

Android 比较位图,android,bitmap,android-canvas,game-physics,Android,Bitmap,Android Canvas,Game Physics,我正在尝试开发一款射击彩球游戏。我知道这是一个古老的游戏 我的问题是: 如果我把一个绿色的球射向一组球,当它越过球时,它如何能找出它是什么颜色的球(位图)。所有的彩色球都会移动。作为ex的一个场景:我朝一个正在移动的绿色目标球射出一个绿色子弹球。现在中间有一个红球挡住了去路。我的绿色子弹应该穿过它朝向绿色目标球。我使用了坐标比较和位图比较(GreenbertballBitmap.sameAs(redinbetweenballbitmap)。由于这些位图都是预定义的,我如何能够快速获得介于两者之间

我正在尝试开发一款
射击彩球游戏
。我知道这是一个古老的游戏

我的问题是: 如果我把一个绿色的球射向一组球,当它越过球时,它如何能找出它是什么颜色的球(位图)。所有的彩色球都会移动。作为ex的一个场景:我朝一个正在移动的绿色目标球射出一个绿色子弹球。现在中间有一个红球挡住了去路。我的绿色子弹应该穿过它朝向绿色目标球。我使用了坐标比较和位图比较(GreenbertballBitmap.sameAs(redinbetweenballbitmap)。由于这些位图都是预定义的,我如何能够快速获得介于两者之间的位图?希望大家都理解我的观点。

也许这会有所帮助

做一个球的模型


然后只需使用
if(ballA.getId()!=ballB.getId()){*您的代码*}//或getColor()来代替

此外,如果只计算球a的
Rect
和球B的
Rect
是否相交(查找计算Rect相交),而不是比较位图,则效率要高得多(而且速度要快得多)。

将“视图”(位图)与“控制器”(移动和交互的球)分开

如果你有一个有绿色小球和红色小球的游戏,将颜色(或团队或其他东西)作为游戏本身的一个数据项。然后,当你以后出于艺术原因决定需要10个不同的绿色小球位图时,代码仍然有效,你的比较只是(a.color==b.color),您可以轻松地为它编写测试用例,而无需测试GUI

public class Ball
{

    String id; //or color
    Bitmap bitmap;

    String getId()
    {
        return id;
    }

    Bitmap getBitmap()
    {
        return bitmap;
    }
}