gpt4 book ai didi

java - 需要一种方法让我的角色在左/右移动时跳跃

转载 作者:行者123 更新时间:2023-11-29 06:00:02 24 4
gpt4 key购买 nike

我已经让 y 轴上的跳跃运行良好,但我希望能够在按下左/右键的同时使用“dx”进行跳跃(例如,如果我按下右键向右移动,按住它跳跃,角色将以“对角线”方式移动)

我的主要跳跃代码(按下跳跃键时激活计时器):

 public void actionPerformed (ActionEvent e) {
dy += 1;
y_pos += dy;
if (y_pos >= 400) {
dy = 0;
y_pos = 400;
timer.stop();
}
repaint();
}

现在我的 KeyEvent 代码:

            if (command == KeyEvent.VK_RIGHT){
x_pos += 5;
right = true;
}
if (command == KeyEvent.VK_LEFT) {
x_pos -= 5;
right = false;
}
if (command == KeyEvent.VK_UP) {
if (!(timer.isRunning()))
dy = -20;
timer.start();
}
dr.repaint();

最佳答案

下面是我将如何实现输入逻辑。请注意,当您想进一步深入研究输入处理时,有多种选择。使用此实现,键盘输入与其对游戏世界的影响分开,这在几个方面都很方便。例如,无论按键/重复的频率如何,角色的速度都是恒定的(假设游戏循环/移动的时间安排正确)。

无论如何,一些伪代码:

// Global:
array keysdown;
keysdown[left] = false;
keysdown[right] = false;
keysdown[up] = false;

// The all-important game loop:
while (true) {
pollInputs();
doMovement();
draw();
}

function pollInputs () {
foreach (key that you want to handle) {
if (key.state == down) {
keysdown[key] = true;
} else {
keysdown[key] = false;
}
}
}

function doMovement () {
if (keysdown[left]) {
// move character left
} else if (keysdown[right]) {
// move character right
}

if (keysdown[up]) {
// initiate jump
}
}

关于java - 需要一种方法让我的角色在左/右移动时跳跃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10526049/

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