所以基本上,我正在做一个简单的乒乓球比赛。你可以看到我做到这一点,每当球与某些东西碰撞时,一个命中标记会出现片刻。 但这一刻只有一帧吗?因为渲染每秒调用x次,而x是fps。所以我意识到,如果有人玩这个游戏,玩的帧速率较慢,那么命中标记会显示得更长。
TL; DR如何在秒而不是帧中渲染一定量的内容,以便具有不同fps的ppl可以看到相同的图像时间量。
核心:http://pastebin.com/QrJUxusR
答案 0 :(得分:2)
你需要存储第一次绘制命中标记的时间加上应该绘制多长时间的时间(以毫秒为单位)。现在您知道只要存储时间大于当前时间,您就可以绘制命中标记。
伪代码:
private long hitmarkerDrawStart;
if(collission) {
hitmarkerDrawStart = TimeUtils.millis() + 1000; // 1000ms = 1s
}
public void render() {
if(hitmarkerDrawStart > TimeUtils.millis()) {
//draw the hitmarker batch.draw(...)
}
}