所以,我问我的2D游戏问题,实际上它不是游戏,但它就像是糟糕的游戏。好吧,我做了移动系统,现在是时候跳跃了。我用教程做了一些引力,但我不喜欢它。这很简单,但是重力示例中存在问题:1。你可以举起箭头并用跳跃“飞”。我试图解决这个问题,并采取某种限制来跳跃,但这是不好的尝试。第二个问题是,当你跳起并释放箭头(跳跃键)时,我的精灵会非常快地下降,我无法在空中控制那个精灵。
这是我的第一场比赛,我想花时间去做,但现在我有问题,我无法用自己解决,所以如果你可以帮忙,请这样做。我使用C ++与CodeBlocks和SFML多媒体库。
所以我的代码很少有部分。
首先是速度和重力配置:
//gravity & velocity
const float gravity = 1;
int ground = 600; //height of ground
Vector2f velocity(Vector2f(0,0));
float movingSpeed = 0.5f, jumpingSpeed = 2.0f;
然后按下按钮时很简单:
if(Keyboard::isKeyPressed(Keyboard::Up)){
skeleton.move(0,velocity.y = -jumpingSpeed);
source.y = Up;
isWalking = true;
}
并且有一个系统可以识别你是否跳跃,这会让你摔倒:
if(skeleton.getPosition().y + skeleton.getScale().y < ground || velocity.y < 0){
velocity.y += gravity;
}else{
skeleton.setPosition(skeleton.getPosition().x, ground - skeleton.getScale().y);
}
所以我的精灵名称是“骨架”。是的,这是游戏物理学的第一次。我不是一个很好的游戏程序员,所以这些代码可能很差,是的......如果你发明了一个解决方案,请分享它。