有人可以告诉我为什么我的游戏中的镜头移动时一切都会振动吗?

问题描述

我不确定为什么,但是由于某种原因,只要我的游戏中的相机移动,除了它关注的角色之外的所有东西都会像他们应该移动的那样做这怪异的事情,但是它们几乎振动了,你可以看到一点对象背面的痕迹,尽管很小。有人可以告诉我为什么会这样吗?这是代码

x+= (xTo-x)/camera_speed_width;
y+= (yTo-y)/camera_speed_height;
x=clamp(x,CAMERA_WIDTH/2,room_width-CAMERA_WIDTH/2);
y=clamp(y,CAMERA_HEIGHT/2,room_height-CAMERA_HEIGHT/2);
if (follow != noone)
{
    xTo=follow.x;
    yTo=follow.y;
}
var _view_matrix = matrix_build_lookat(x,y,-10,x,1,0);
var _projection_matrix = matrix_build_projection_ortho(CAMERA_WIDTH,CAMERA_HEIGHT,-10000,10000)
camera_set_view_mat(camera,_view_matrix);
camera_set_proj_mat(camera,_projection_matrix);

解决方法

我可以想到2种选择:

  • 您的游戏以较低的每秒帧数(30或更低)运行,较高的FPS将使运动图形更流畅(通常最低为60 FPS)
  • 另一种可能性是,您的相机被多次设置为目标,也许一部分(或分组代码)比另一部分更早跟随播放器。我认为您也可以让视口跟随房间编辑器中的对象,也许也已设置。

尝试看看这些选项是否会对您有所帮助。

,

如果您的相机分辨率较低,则应考虑对相机坐标进行四舍五入-否则,实例(相对于相机)位于小数坐标处,此时,您将受GPU左右如何渲染它们的权限。如果实例本身使用小数坐标,则由于合并的分数四舍五入到一个或另一个数字,您将变得摇摆不定。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...