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;
}
}