我正在写我的第一场比赛。在这个游戏中,我有一个heroEntity
对象,它有字段:
float X {get; set;}
float Y {get; set;}
Monogame.Extended.Camera2D Camera {get; set;}
因为我有一些背景,所以我使用Camera.Move()
而不是移动我的heroEntity
对象(我把它放在每个帧之后的Camera.BoundingRectangle
的中心)。
现在,我也是一个List<BulletEntity> Bullets
(这些符号也具有X和Y属性),它们也应该独立于heroEntity.Camera
对象移动。当我简单地独立执行相机和子弹的运动时,有一种感觉,我的子弹有点颤抖。
我怎么才能解决呢?
发布于 2018-08-06 18:52:46
只要把FPS从30改为60,问题就解决了。
在初始化()方法中
TargetElapsedTime = TimeSpan.FromSeconds(1d / 60d)
另外,不要忘记将IsFixedTimeStep
属性设置为true
发布于 2018-04-27 00:08:05
我不熟悉monogame,但是如果您必须自己编写输入管理器,那么可能会遇到轮询问题。
也就是说,只有当英雄移动时,子弹才会摇动。
我忘记了为什么会出现这个问题,但我确信这与在事件之间处理的代码有关。->首先轮询所有键盘数据,然后模拟。不是两者兼而有之。
当然,也有可能你的框架是不同步的。
如果可以的话,我建议实现每帧睡眠0.5或1秒,并观察更近的抖动。
https://gamedev.stackexchange.com/questions/157491
复制相似问题