android怎样不让view重绘,为什么没有view.invalidate立即重绘我的Android游戏中的屏幕...

我试图做一个

android游戏.

我有一个扩展活动并处理所有用户输入的游戏类.然后我有一个taskView类来扩展视图,并绘制屏幕上的级别.

当用户点击门时,我想添加一些动画.

会发生什么事情:游戏调用door.open.改变状态,所以view.onDraw函数会把门打开一半.游戏调用view.invalidate,它应该重画屏幕.然后游戏睡了半秒钟.然后再打电话给door.open.第二次调用这个函数会改变状态,所以view.onDraw函数把门完全打开.然后游戏调用view.invalidate再次.

问题是,当它获取到view.invalidate时,它不会重绘屏幕.如果我在线上设置了一个断点并运行调试器,然后单击其中的步骤就不会进入我的view.onDraw函数.它甚至不能显示我正在执行的代码.

我所拥有的是

门课:

public boolean open()

{

if (doorState == DoorState.Closed)

{

doorState = DoorState.Opening;

return true;

}

else if (doorState == DoorState.Opening)

{

doorState = doorState.Open;

return true;

}

else

{

return false;

}

}

游戏类:

if (tile instanceof DoorTile)

{

DoorTile doorTile = (DoorTile) tile;

Door door = doorTile.getDoor();

if (door.isClosed())

{

door.open();

selectedEntity.openDoor();

view.invalidate(); // This line does not work

try

{

Thread.sleep(500);

}

catch (InterruptedException e1)

{

// TODO Auto-generated catch block

e1.printStackTrace();

}

door.open();

// Handled touch event so break switch statement

break;

}

}

你可能感兴趣的:(android怎样不让view重绘,为什么没有view.invalidate立即重绘我的Android游戏中的屏幕...)