gpt4 book ai didi

java - Java IF 语句的问题

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

我创建了一个名为multiplay的 boolean 值。

private boolean multiplay;

在我的public Game()中我有:

// make a player
player = new Player(this);
if(multiplay == true) {
player2 = new Player(this);
}

在实际的类文件中,我创建了一个方法:

public void startMutliPlayer() {
multiplay = true;
}

我想做的是,当调用 startMultiPlayer 时,它将把 boolean multiplay 设置为 true,因此,两个玩家将添加到框架中的没有一个。如果未调用“startMultiPlayer”,它将仅添加一名玩家。

目前,当我调用 startMultiPlayer 时,它仅添加一名玩家而不是两名玩家。

更新:

能够使用以下代码解决此问题:

// Make Players (Single & MultiPlayer)
if (multiplay == false) {
player = new Player(this);
player.setPosition(startPosition);
player.move(new Vec2(-210, 0));
multiplay = true;
} else if(multiplay == true) {
player = new Player(this);
player.setPosition(startPosition);
player.move(new Vec2(-210, 0));player2 = new Player(this);
player2.setPosition(startPosition);
player2.move(new Vec2(-150, 0));
multiplay = false;
}

public static void startMutliPlayer() {
multiplay = false;
}

谢谢

最佳答案

您正在对 Game 类的哪个对象调用 startMultiPlay?由于它总是在调用 Game 构造函数之后被调用,因此它将不起作用 - 因为当调用 Game 构造函数时,multiplay 将为 false。

解决这个问题的方法是

private boolean multiplay;

需要更改为

private static boolean multiplay;

同时将 startMultiPlayer 设置为静态并在创建 Game 对象之前调用它。

另一种方法是不在 Game 的 ctor 中创建 Player。必须使用 startMultiPlayer 和 startSinglePlayer 方法 - 分别在这些方法中创建一个或两个 Player 对象。

关于java - Java IF 语句的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15850715/

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