gpt4 book ai didi

Java游戏编程: Smooth Jumping

转载 作者:行者123 更新时间:2023-12-01 11:08:25 25 4
gpt4 key购买 nike

在过去的一个半星期里,我一直在使用 Java 和 Swing 从头开始​​编写游戏。到目前为止,游戏运行一切顺利,除了一件事:跳跃。我正在尝试实现抛物线跳跃,以便玩家不只是向上传送一点点。相反,我希望它看起来很现实。到目前为止,我的代码如下所示(这只是跳转方法,每当按下空格键、W 或向上键时都会调用它):

private void jump(Game game){
VectorF velocity = new VectorF(0f, 0.1f);

int t = 0;

while(t < 200){
if(checkTop(game)) break;

relPos.sub(velocity);
t++;
}
}

最佳答案

您的游戏应该有 game loop .

通常,(非常基本的)游戏循环如下所示:

while (playing) {
accept_input()
update_game_logic()
render()
}

在您的 update_game_logic() 函数中,您将有一个更新玩家位置的部分。玩家的位置更新步骤通常看起来像是以下内容的混合:

// 1. sum up 'effects' on the player
// think of 'effects' as velocities that we are adding together
// is jumping? add (0.0, 0.1),
// is holding the right-button? add (0.1, 0.0)
// 2. add a gravity effect (0.0, -0.05)?
// 3. sum up all velocity changes and apply them to the player
// 4. check for any collision and prevent it
// (straight up adjusting the position out of the colliding object will do for now, this will also stop you from falling through the floor due to gravity)

因为您根据每个刻度的速度调整玩家的位置,所以您可以继续接受输入并渲染屏幕,同时更新游戏逻辑。

编辑:如果你想要一个合适的抛物线弧,上面的“效果”实际上应该是力加在一起导致速度变化(通过加速度),然后以更现实的方式改变位置。查看my similar answer here了解更多详情。

关于Java游戏编程: Smooth Jumping,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32668606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com