gpt4 book ai didi

java - 玩家与敌人发生冲突时结束游戏

转载 作者:行者123 更新时间:2023-12-01 19:56:00 24 4
gpt4 key购买 nike

我正在创建我的第一个JavaFX游戏,并且正在努力实现某种方法。我有一个玩家,一个敌人和一个班级。当玩家和敌人在同一个单元上行走时,游戏结束。玩家和敌人都有x和y坐标。

为了实现这一点,我想循环查看敌人所在的单元格,然后比较x和y坐标以判断玩家是否与敌人在同一格中。

如果有更好的方法,将不胜感激。谢谢 :)

最佳答案

在游戏中实现位置的相当标准的模型是位置的所有变化都要经过实现您的世界(或棋盘或地图)的任何类。然后,它更新项目的位置,并记录从位置到该位置实体的地图。

interface Entity {
void setPosition(Position position);
Position getPosition();
boolean isEnemy();
}

class World {
private final Map<Position,Set<Entity>> entities = new HashMap<>();

public void move(Entity entity, Position position) {
entitySetAtPosition(entity.getPosition()).remove(entity);
entity.setPosition(position);
entitySetAtPosition(position).add(entity);
}

private Set<Entity> entitySetAtPosition(Position position) {
return entities.computeIfAbsent(position, () -> new HashSet<>());
}

public Stream<Entity> entitiesAtPosition(Position position) {
return entitySetAtPosition(position).stream();
}
}


检查玩家位置是否有敌人将是 world.entitiesAtPosition(player.getPosition).anyMatch(Entity::isEnemy)

关于java - 玩家与敌人发生冲突时结束游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59042485/

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