我将展示得分。 isCollides是一个检查碰撞的函数。
if(isCollides(prize, splash))
在其他功能中运行良好但在运行功能不起作用。
private Runnable Scoring =new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
try {
if(isCollides(prize, splash))
{
score++;
p.setText(":"+score);
}
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
mHandler.postDelayed(mStartVamp, 3000);
}
};
public boolean isCollides(Sprite Sprite1 ,Sprite Sprite2) throws Exception
{
float diffX = Math.abs( (Sprite1.getX() + Sprite1.getWidth()/2 )-
(Sprite2.getX() + Sprite2.getWidth()/2 ));
float diffY = Math.abs( (Sprite1.getY() + Sprite1.getHeight()/2 )-
(Sprite2.getY() + Sprite2.getHeight()/2 ));
if(diffX < (Sprite1.getWidth()/2 + Sprite2.getWidth()/3)
&& diffY < (Sprite1.getHeight()/2 + Sprite2.getHeight()/3))
{
return true;
}
else{
return false;
}
}
答案 0 :(得分:0)
您对AndEngine实体所做的任何更改都需要在AndEngine UpdateThread上进行 - 因此您对p.setText()
的调用应该包含在runOnUpdateThread()
调用中 - 请参阅此主题以了解如何 - {{3} }