在我的游戏中有几个类我写过,包括房间,灯,胸,爪哇,玩家,钥匙和地图。这些都经过了测试,并且是正确的,所以现在我正在编写我的adventure类,它是程序的驱动程序。我需要设置球员的房间位置[0][0],但我不知道怎么做。这是我到目前为止在我的房间和冒险课。
public class Adventure { Scanner in = new Scanner(System.in); private Room room; public Adventure() { Player player = new Player(); Map map = new Map(); player.setX(0); player.setY(0); int x = 0; int y = 0; map.getRoom(x, y).getDescription(); } } public class Room { private String description; private boolean north; private boolean south; private boolean east; private boolean west; private boolean isDark; private Lamp theLamp; private Key theKey; private Chest theChest; /** * Returns the text description of this room */ public String getDescription() { return description; } /** * Returns true if the player can go north from this room */ public boolean canGoNorth() { return north; } /** * Returns true if the player can go south from this room */ public boolean canGoSouth() { return south; } /** * Returns true if the player can go east from this room */ public boolean canGoEast() { return east; } /** * Returns true if the player can go west from this room */ public boolean canGoWest() { return west; } /** * Returns the lamp object in this room. * If no lamp is present, returns null */ public Lamp getLamp() { return theLamp; } /** * Sets the lamp variable in this room to null */ public void clearLamp() { theLamp = null; } /** * Returns the key object in this room. * If no key is present, returns null */ public Key getKey() { return theKey; } /** * Sets the key variable in this room to null */ public void clearKey() { theKey = null; } /** * Returns the chest object in this room. * If no chest is present, returns null */ public Chest getChest() { return theChest; } /** * Returns true if there is no light in this room, * veeeeeeeery dangerous! */ public boolean isDark() { return isDark; } /** * Hey wassup dawg? I'ma constructor. I make the objects round these parts, * sometimes without even trying, knowwhatimssayin? * Yall don't haveta worry 'bout me for this'ere game, but look me up in * Chapter 6 sometime. Kay? * */ public Room(String description, boolean north, boolean south, boolean east, boolean west, boolean isDark, Lamp theLamp, Key theKey, Chest theChest) { super(); this.description = description; this.north = north; this.south = south; this.east = east; this.west = west; this.isDark = isDark; this.theLamp = theLamp; this.theKey = theKey; this.theChest = theChest; } }
您已经有了一个Room对象,那么真的有必要存储每个Room的X/Y坐标吗?您可以创建一个通过North/South/East/West Room对象(如果适用)相互链接的Room对象的结构。
然后,您可以在您的player类中拥有一个变量,如“CurrentRoom”或“Location”。包括一个获取和设置该位置的函数,您现在可以设置和访问角色的当前位置。
如果X/Y对您来说真的很重要,我想您可以在adventure类中创建一个Room对象的二维数组,然后使用X/Y坐标来定位该结构中的房间(即“X”可能指的是行,“Y”指的是列来定位存储在数组中的位置)。
然而,通过exit/Room指针创建Room对象并将其链接到其他Room对象可能更容易、更少浪费、更易扩展。
public class Player {
private Room location = null;
public void setLocation(Room newLocation) {
location = newLocation;
}
}
public class Room {
private Room NorthExit = null;
public Room getNorthExit() {
return NorthExit;
}
public setNorthExit(Room newRoom) {
NorthExit = newRoom;
}
}
// In main somewhere...
Room room1 = new Room();
Room room2 = new Room();
room1.setNorthExit(room2);
Player player1 = new Player();
player1.setLocation(room1);
您可以在上面的代码中看到,我们创建并链接了两个房间,如果我们在第一个房间,用户可以将room1设置到他们的位置,并从他们的location对象访问有关room1的所有信息。我们还可以通过每个出口的位置对象/引用从我们的位置对象访问任何相邻的房间。
所以我是Java编码的新手,我对C#有很好的经验,我知道它们非常相似。我目前正在通过创建一个文本冒险游戏来处理Java,游戏使用案例(案例1、案例2、默认等),目前我正在开发一个保存和加载功能,但我不知道如何保存一个使用案例来进一步编码的分支游戏,有人有什么想法吗?
我正在Java制作一个基于文本的冒险游戏。我需要让用户能够拿起物品并将其放入库存中,但我不确定如何做到! 这是我的项目当前的设置方式: 我需要能够在某些房间里有特定的物品。有人有什么建议吗?
冒险家是一款像素风的冒险游戏,选择你的心仪角色,冲冲冲!
带领你的英雄们永无止境的冒险!目前也出了 Steam 版。
《卡牌冒险》是一款卡牌类的回合制放置游戏。
本文向大家介绍基于javascript实现泡泡大冒险网页版小游戏,包括了基于javascript实现泡泡大冒险网页版小游戏的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了一个很有趣的网页版游戏,有点类似金山打字游戏的青蛙过河,供大家参考,具体内容如下 效果图: 实现思路: 益智类小游戏,主要练习打字能力,基于jq开发。 1.在输入框输入泡泡对应文字,点击enter提交 2.与泡泡文字