我正在尝试制作一个平台游戏,但我无法让跳跃顺利进行。使用此代码:
public void tick(){
if(jumping){
y -= 8;
jumping = false;
}else{
for(Platform p : game.platforms){
if(Rect.intersects(getBounds(), p.getBounds()))
coll = true;
}
if(!coll){
y += 4;
}
coll = false;
}
}
是突然的运动。有了这个:
public void tick(){
if(jumping){
y -= 8;
}else{
for(Platform p : game.platforms){
if(Rect.intersects(getBounds(), p.getBounds()))
coll = true;
}
if(!coll){
y += 4;
}else
jumping = false;
coll = false;
}
}
它没有降下来。那么,我该如何让跳跃更顺畅呢?
答案 0 :(得分:0)
你真的想要使用某种基于物理学的方法。至少,除了位置之外,还应该对速度进行建模。
float Velocity=0;
if (isJumping) {
velocity+=10
isJumping=false;
}
y+=velocity;
velocity-=1;
然后你需要做一些检查以确定你下面是否有物体。如果是这样,请将速度设置为0.随意增强此功能,但使用基于物理的方法可以获得最流畅的方法。