【发布时间】:2019-12-02 00:20:45
【问题描述】:
我正在尝试在 Monogame 中开发一款节奏游戏。音符与帧速率无关,并且可以在不同的计算机上始终如一地工作,但播放的歌曲则不然。现在我已经把它连接起来了,所以在我按下一个键之前,笔记会产生并且 MediaPlayer.Play() 不会启动(所以它在 loadcontent/initialize 之外,就像我看到的其他解决方案所建议的那样)。在我按下“I”键(在更新中检查)之前,歌曲不会开始播放。然而,这首歌似乎在不同的时间开始在不同的设备上播放。我在我的笔记本电脑(电池)和台式机上拉下项目,并同时在两者上按下“I”键,我在笔记本电脑上得到不同的结果。有时它会比桌面领先几秒钟,有时它会落后一两秒(通常是这种情况)。在桌面上看起来非常一致。我尝试了十几次,一切仍然同步,但不是在我的笔记本电脑上。我担心这只能在我的电脑上运行,而不能在其他电脑上运行。
我尝试启用 fixedTimeStep 并将 FPS 设置为 60(并将 TargetElapsedTime 设置为窗口标题,确保它们确实都达到 60),但我仍然得到不一致的结果。我从其他答案中阅读了有关使用 MediaPlayer 类中的 PlayPosition 的信息,但该属性是只读的,所以我不太了解如何使用它。
起初,我认为我的笔记只是依赖于帧速率,但在设置 FPS 和 fixedTimeStep,并将我的笔记本电脑放在桌面显示器上之后,它们完美匹配。只是歌曲没有同步。我还是 XNA 的新手,但我找不到其他人报告这样的不同歌曲开始时间。任何帮助将不胜感激。
【问题讨论】: