[英]Create Java 2D gravity?
我正在创建Java游戏(我现在是这个游戏的初学者),我想从某种平台游戏开始。
我想知道如何让球员跳起来(我知道如何上下移动他),但是我不知道如何让他在上升之后下沉。
这是我的代码:
public void keyPress() {
if (listener.arrowUp) {
Jump();
}
}
private void Jump() {
if(player.get(1).getPosY() > maxJump) {
player.get(1).moveY(-10);
} else if(player.get(1).getPosY() == maxJump) {
player.get(1).moveY(85);
}
}
所以..只要我按下“ w”,玩家便向上移动-10px,当他达到maxJump(375且玩家起始位置为465)时,他“传送”回465,而不是像他一样向下滑动没有视频时,很难解释这一点,但我希望有人能理解并能帮助我。
这个问题给您一个基本的答案。 现在,在跳转功能中,您只需设置一次vertical_speed
,并且每帧只调用fall()
并添加一些moveY
。
这里有两种选择:
选项1.模拟一些非常简单的物理过程。 您向播放器添加了力量,因此按向上箭头将添加使播放器向上移动的力量。 重力不断施加,因此它将逐渐抵消您在按下向上箭头时所施加的力。 也许您只想在垂直方向上使用力,您可以执行以下操作:
// Each frame
if(notOnTheGround){
verticalVelocity -= GRAVITATIONAL_CONSTANT;
}
// When user jumps
vertivalVelocity += JUMP_FORCE;
// Each frame
if(isJumping){
verticalVelocity = initialVelocity*sin(angle) - g*animationTime;
animationTime += TIME_STEP;
}
// When user jumps
isJumping = true;
animationTime = 0;
initialVelocity = ... // calculate initial velocity
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.