【问题标题】:Compare bitmaps比较位图
【发布时间】:2015-03-04 13:01:33
【问题描述】:

我正在尝试开发一个shoot colored balls game。我知道这是一个古老的游戏。

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

【问题讨论】:

    标签: android bitmap android-canvas game-physics


    【解决方案1】:

    也许这会有所帮助?

    为 Ball 制作一个模型。


    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 是否相交(查找计算矩形交点),它的效率要高得多(而且速度要快得多)。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-09-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-18
        • 2010-12-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多