比较位图

时间:2015-03-04 13:01:34

标签: android bitmap android-canvas game-physics

我正在努力开发shoot colored balls game。我知道这是一场古老的比赛。

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

2 个答案:

答案 0 :(得分:0)

也许这会有所帮助?

为球制作模型,即


public class Ball
{

    String id; //or color
    Bitmap bitmap;

    String getId()
    {
        return id;
    }

    Bitmap getBitmap()
    {
        return bitmap;
    }
}

然后使用if(ballA.getId() != ballB.getId() ) { *your code* } //or getColor() instead

如果你只计算球A的Rect和球B的Rect是否相交,那么它不是比较位图,而是更有效(并且速度快得多)(查找计算矩形交点)。

答案 1 :(得分:0)

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

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