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