我正在开发一款小型安卓游戏。这是关于击落敌机。我正在使用Android Canvas中的内置绘制实际游戏的内容。为了告诉用户他的分数和其他信息,我使用
canvas.drawText(...);
我的问题是,在短时间后,文本会以错误的x坐标绘制。我检查了受影响的变量,并且它们存储了正确的值。 这是源代码:
c.drawText(this.you + ": " + this.activity.getLocalScore(), GameActivitySinglePlayer.SCREEN_WIDTH * 0.02f, GameActivitySinglePlayer.SCREEN_HEIGHT * 0.07f, this.smallText);//works
c.drawText(this.enemy + ": " + this.activity.getAndroidScore(), GameActivitySinglePlayer.SCREEN_WIDTH * 0.8f, GameActivitySinglePlayer.SCREEN_HEIGHT * 0.07f, this.smallText);//works
c.drawText(this.oldFps + " FPS", GameActivitySinglePlayer.SCREEN_WIDTH * 0.45f, GameActivitySinglePlayer.SCREEN_HEIGHT * 0.05f, this.smallText);//works sometime
c.drawText(this.activity.lives + " " + this.lives, GameActivitySinglePlayer.SCREEN_WIDTH * 0.45f, GameActivitySinglePlayer.SCREEN_HEIGHT * 0.091f, this.smallText);//works sometime
c.drawText("Level " + this.activity.level, GameActivitySinglePlayer.SCREEN_WIDTH * 0.45f, GameActivitySinglePlayer.SCREEN_HEIGHT * 0.132f, this.smallText);//works sometime
System.out.println("width: " + GameActivitySinglePlayer.SCREEN_WIDTH + " height " + GameActivitySinglePlayer.SCREEN_HEIGHT); //Prints correct values (1280 and 720)
Here is a combined image of the fail
请注意,我之后添加了红色矩形,以提高错误的可见性。
感谢您提供任何帮助和改进建议。