我怎样才能更好地跳到我的游戏中? - C ++ SFML

时间:2016-05-12 19:05:15

标签: c++ game-physics sfml

所以,我问我的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);
            }

所以我的精灵名称是“骨架”。是的,这是游戏物理学的第一次。我不是一个很好的游戏程序员,所以这些代码可能很差,是的......如果你发明了一个解决方案,请分享它。

0 个答案:

没有答案