我试图用JAVA制作一个像加那贝尔这样的游戏,使用LibGDX,在游戏中背景从右向左加速,而玩家在相同的position.The距离上每秒钟增加一个,速度加快0.15f如下:
public void update(float delta){
timeState += delta;
speed += 0.15f;
if(timeState >= 1){
timeState = 0f;
distance += 1;
}
if (speed > MAX_SPEED) speed = MAX_SPEED;
}但我不希望距离是恒定的,我希望它相对于速度变化。因此,随着速度的增加,距离也开始增加得更快。当速度达到最大值时,距离增量也应该是恒定的。我怎么能把它归档?
发布于 2016-05-11 14:54:56
我认为让distance代表真实的距离可能要简单一些,比如:
public void update(float delta){
distance += speed * delta; // distance = speed * time
speed += 0.15f;
if (speed > MAX_SPEED) speed = MAX_SPEED;
}这样,您的变量实际上反映了游戏中正在发生的事情,而不必使用模糊的时间状态解决方案。
这里唯一的区别是,distance现在需要一个浮点--将其转换为int (如(int)distance),将其截断,并将其保留为您希望从上面的代码中得到的整数值。
发布于 2016-05-10 16:42:48
使用数学函数,对数应该可以做到这一点,因为你的速度将达到一个极限,距离也将使用相同的路径,效果将更加平滑。
https://stackoverflow.com/questions/37143734
复制相似问题