好的。所以,我是一个 child ,试图编写一个很酷的小型 3D 游戏,然后这个...问题决定让我在接下来的几天里大吃一惊。
我正在使用 Eclipse 作为我的 IDE。当我插入 controls.tick(forward、back、left、right、turnLeft、turnRight);
(“controls”是我的游戏的控件,而“tick”是与步骤、转动、时间本身等相关的时间。)Eclipse 说 ““Controller”类型中的方法“tick”(boolean, boolean, boolean, boolean, boolean) 不适用于参数 (boolean, boolean 值, boolean 值, boolean 值, boolean 值, boolean 值)”
我开始感到非常沮丧。 “前进、后退、左转、右转、左转、右转”是 boolean 值,旨在防止相机移动。它们“链接”到将其设置为 true 的键,以保持简短。 “ Controller ”是一个 .class 文件,用于“容纳”控件、旋转等。
那么,对我做错的事情的深入回应是什么?重要的是我不要添加或删除我所拥有的任何 boolean 值。有什么办法可以解决这个问题吗?可以给我一个演练吗?
这是我完成这项工作的 .class 文件:
package com.mime.ocelot;
import java.awt.event.KeyEvent;
import com.mime.ocelot.input.Controller;
public class Game {
public int time;
public Controller controls;
public Game() {
}
public void tick(boolean[] key) {
time++;
boolean forward = key[KeyEvent.VK_W];
boolean back = key[KeyEvent.VK_S];
boolean left = key[KeyEvent.VK_A];
boolean right = key[KeyEvent.VK_D];
boolean turnLeft = key[KeyEvent.VK_LEFT];
boolean turnRight = key[KeyEvent.VK_RIGHT];
controls.tick(forward, back, left, right, turnLeft, turnRight);
}
}
这是实际 Controller 的 .class:
package com.mime.ocelot.input;
public class Controller {
public double x, z, rotation, xa, za, rotationa;
public void tick(boolean forward, boolean back, boolean right, boolean turnLeft, boolean turnRight) {
}
}
最佳答案
tick()
定义如下:
tick(boolean forward, boolean back, boolean right, boolean turnLeft, boolean turnRight)
它需要五个 boolean 参数。你可以这样调用它:
tick(forward, back, left, right, turnLeft, turnRight);
您尝试向其传递六个 boolean 值参数。看来您打算这样定义它:
tick(boolean forward, boolean back, boolean left, boolean right, boolean turnLeft, boolean turnRight)
<小时/>
哇,我因为指出函数定义中缺少参数而获得了六票赞成。
关于Java:方法不适用于参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53546734/