【问题标题】: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。 ..