用opengl做的游戏,将程序移植到别的电脑上,速度又得重新调整,有什么好的方法解决这个有关问题吗

用opengl做的游戏,将程序移植到别的电脑上,速度又得重新调整,有什么好的方法解决这个问题吗?
RT。
我用opengl做了一个小游戏,语言是用c++的开发的。在我自己的电脑上调试好后,速度都弄好了,结果将程序拷到其他电脑上去,速度慢了很多,得重新再改。如果这样的话,那每次移植过去都要改很麻烦,因为我只把.exe文件给对方,对方就玩的不爽了,请教各位大神,有什么好的解决方法吗?
OpenGL 游戏 c++

------解决方案--------------------
这个问题很简单。估计你在更新游戏精灵的位置的时候,没有考虑机器运行速度的问题。有的机器可能运行30帧/秒,有的可能120帧/秒,如果你简单的进行精灵位移,则速度块的机器,精灵的移动速度也快。

修正方法如下:
方法1、为精灵设定一个速度。每次更新画面时,计算距离上次渲染逝去了多少时间,然后用时间×速度,得到本次精灵位移的位移量。这样方法是最好的,速度块的机器上,可以更细腻,速度慢的机器上,步进大,但速度是一样的。

方法2、设置恒定的渲染时间间隔。必须限定在30帧,问题是,遇到连30帧都跑不完的破机器,就会有问题。
------解决方案--------------------
引用:
Quote: 引用:

变慢是指变卡还是单位时间内移动的距离变慢

变卡无解,机器差没办法。

时间轴应该根据真实时间变化而不是根据帧数变化。
求教!!

你可以搜索下 跳帧

另外现在PC上 像你这种小游戏 一般不会卡的 你还是想想怎么改改程序好
------解决方案--------------------
引用:
这个问题很简单。估计你在更新游戏精灵的位置的时候,没有考虑机器运行速度的问题。有的机器可能运行30帧/秒,有的可能120帧/秒,如果你简单的进行精灵位移,则速度块的机器,精灵的移动速度也快。

修正方法如下:
方法1、为精灵设定一个速度。每次更新画面时,计算距离上次渲染逝去了多少时间,然后用时间×速度,得到本次精灵位移的位移量。这样方法是最好的,速度块的机器上,可以更细腻,速度慢的机器上,步进大,但速度是一样的。

方法2、设置恒定的渲染时间间隔。必须限定在30帧,问题是,遇到连30帧都跑不完的破机器,就会有问题。


很简单,这种游戏的方法就是最常见的游戏中的“垂直同步功能”。一句话总结:就是额定计算一定量的数据,再记录流逝时间:多于规定则直接pass,少了则睡眠规定时间差后再开始。
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

这个问题很简单。估计你在更新游戏精灵的位置的时候,没有考虑机器运行速度的问题。有的机器可能运行30帧/秒,有的可能120帧/秒,如果你简单的进行精灵位移,则速度块的机器,精灵的移动速度也快。

修正方法如下:
方法1、为精灵设定一个速度。每次更新画面时,计算距离上次渲染逝去了多少时间,然后用时间×速度,得到本次精灵位移的位移量。这样方法是最好的,速度块的机器上,可以更细腻,速度慢的机器上,步进大,但速度是一样的。

方法2、设置恒定的渲染时间间隔。必须限定在30帧,问题是,遇到连30帧都跑不完的破机器,就会有问题。


很简单,这种游戏的方法就是最常见的游戏中的“垂直同步功能”。一句话总结:就是额定计算一定量的数据,再记录流逝时间:多于规定则直接pass,少了则睡眠规定时间差后再开始。
好深奥啊,我是初学者,现在做期末大作业,字体显示在窗口上,在别的电脑上会忽明忽暗,怎么解决呢?


这个问题我也不好说是什么原因造成的,所以就没有回答啊。要看具体分析啊。哈哈,没有看到你的代码,关于这样猜测也不太准。你也没有说清楚你是3D游戏还是2D游戏啊。运用了怎么样的渲染
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

这个问题很简单。估计你在更新游戏精灵的位置的时候,没有考虑机器运行速度的问题。有的机器可能运行30帧/秒,有的可能120帧/秒,如果你简单的进行精灵位移,则速度块的机器,精灵的移动速度也快。

修正方法如下:
方法1、为精灵设定一个速度。每次更新画面时,计算距离上次渲染逝去了多少时间,然后用时间×速度,得到本次精灵位移的位移量。这样方法是最好的,速度块的机器上,可以更细腻,速度慢的机器上,步进大,但速度是一样的。

方法2、设置恒定的渲染时间间隔。必须限定在30帧,问题是,遇到连30帧都跑不完的破机器,就会有问题。


很简单,这种游戏的方法就是最常见的游戏中的“垂直同步功能”。一句话总结:就是额定计算一定量的数据,再记录流逝时间:多于规定则直接pass,少了则睡眠规定时间差后再开始。
好深奥啊,我是初学者,现在做期末大作业,字体显示在窗口上,在别的电脑上会忽明忽暗,怎么解决呢?


这个问题我也不好说是什么原因造成的,所以就没有回答啊。要看具体分析啊。哈哈,没有看到你的代码,关于这样猜测也不太准。你也没有说清楚你是3D游戏还是2D游戏啊。运用了怎么样的渲染

if(myplanelife<0) myplanelife=0;