首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建一个小游戏

创建一个小游戏
EN

Stack Overflow用户
提问于 2012-09-05 06:22:09
回答 2查看 324关注 0票数 0

嘿,我有点卡住了,我一直在寻找创建这种类型的迷你游戏的最好方法,基本上玩家会进入一个大厅(他们现在被存储在一个地图或数组中),然后当游戏开始时,游戏将从地图或数组中随机选择一个人成为被感染的人(现在将这个玩家从地图/数组中删除到受感染的地图/数组中)

我该怎么做呢?我以前试过,但最终失败了。

到目前为止,我有类似这样的设置,只是为了测试它

代码语言:javascript
运行
复制
    private static HashMap<String, Integer> infected = new HashMap<String, Integer>();

private static HashMap<String, Integer> survivors = new HashMap<String, Integer>();

private static HashMap<String, Integer> lobby = new HashMap<String, Integer>();

在我们说话的时候,我正在尝试在那里存储随机名称,并将对其进行测试

EN

回答 2

Stack Overflow用户

发布于 2012-09-05 06:39:52

我可能会保留一份所有可用的玩家的“主”列表。从那里,我简单地创建了一个“受感染”玩家的参考列表。

然后,您只需调用“已感染”列表中的contains,即可确定玩家是否已被感染。

但需要更多信息...

票数 0
EN

Stack Overflow用户

发布于 2012-09-05 07:21:09

我不认为HashMap是真正正确的数据结构,也许可以考虑创建一个包含“Buff”集合的球员类,您的Game可以维护多个受感染球员的列表,但在单个列表中查找该球员可能会更简单。

代码语言:javascript
运行
复制
interface Moveable {
    public void forward;
    public void back;
    public void left;
    public void right;
}

interface Buffable {
    public void addBuff(Buff buff);
    public void removeBuff(Buff buff);
    public boolean hasBuff(Buff buff);
}

class Player implements Moveable, Buffable {
    private String name;
    private int health;
    private List<Buff> buffs;

    /*
     contructor etc
     */

    public void addBuff(Buff buff) {
        buffs.add(buff);
    }

    public void removeBuff(Buff buff) {
        buffs.remove(buff);
    }

    public void hasBuff(Buff buff) {
        return buffs.contains(buff);
    }
}

class Game {
    private List<Player> players;
    private List<Player> infected;

    /*
     constructor etc
     */

    public void infect(int player) {
        Player p = players.get(player);
        p.addBuff(new Infection());
        infected.add(p); // see or
    }
    // or
    public List<Player> getInfectedPlayers() {
        List<Player> ret = new List<Player>();
        Buff b = new Infection();

        for (Player p : players) {
            if (p.hasBuff(b)) {
                ret.add(p);
            }
        }

        return ret;
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12272145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档