在我的android游戏中,有一个拱廊模式,游戏运行60秒。游戏画布是一个表面视图。我希望计时器只在表面视图对用户可见时才能启动。如何知道表面视图是可见的,以便可以启动定时器。在表面处理方法中启动计时器是没有帮助的,因为它仍然需要一段时间才能看到表面视图,因此用户会丢失很少的宝贵秒。
发布于 2014-05-13 17:02:21
创建曲面并使其可见所需的时间应该以毫秒为单位,而不是秒。
当调用surfaceCreated()时,该曲面是可见的,但是空白的。您可能要做的是在第一个unlockCanvasAndPost()或eglSwapBuffers()调用之后启动计时器,这样您就可以知道屏幕上有一些内容。
这方面的一个变化是将计时器设置为61秒,而不是60秒。直到时钟到达60点,你才显示出“准备好了吗?”消息在SurfaceView上没有真正开始游戏。(在Android突破游戏开始和方向改变后,我会做一个准备-暂停。)
编辑:关于SurfaceView和活动生命周期之间的交互的一些注释是这里。
https://stackoverflow.com/questions/23637145
复制相似问题