Java游戏-拾取物品并四处查看功能

Java游戏-拾取物品并四处查看功能,java,Java,我一直在创建一个java文本游戏,但我一直在试图弄清楚如何实现最后两种方法。我想让它打印出房间里的物品和房间里npc的名字(一种外观功能)。我不知道该如何继续下去。任何帮助都将受到感谢。 还有NPC(迈克、杰克、邪恶、卡尔) 公共抽象类播放器{ //抽象属性 私有字符串名称; 私人卫生; 私人卫生; 私人财产损害; 包房; 私有int堆栈; 私人智力效应; //播放器的构造函数 公共播放器(字符串名称、int currentHealth、int maxHealth、int伤害、int效果、in

我一直在创建一个java文本游戏,但我一直在试图弄清楚如何实现最后两种方法。我想让它打印出房间里的物品和房间里npc的名字(一种外观功能)。我不知道该如何继续下去。任何帮助都将受到感谢。

还有NPC(迈克、杰克、邪恶、卡尔)

公共抽象类播放器{
//抽象属性
私有字符串名称;
私人卫生;
私人卫生;
私人财产损害;
包房;
私有int堆栈;
私人智力效应;
//播放器的构造函数
公共播放器(字符串名称、int currentHealth、int maxHealth、int伤害、int效果、int堆栈){
this.name=名称;
this.currentHealth=currentHealth;
this.maxHealth=maxHealth;
这个。损坏=损坏;
这个效应=效应;
this.stack=stack;
}
//吸气剂
公共字符串getName(){return name;}
public int getCurrentHealth(){return currentHealth;}
public int getMaxHealth(){return maxHealth;}
public int getDamage(){返回损坏;}
公共房间getCurrentRoom(){return currentRoom;}
public int getEffect(){return effect;}
public int getStack(){return stack;}
//二传手
public void setCurrentHealth(int currentHealth){this.currentHealth=currentHealth;}
public void setMaxHealth(int-maxHealth){this.maxHealth=maxHealth;}
public void setDamage(int-damage){this.damage=damage;}
公共无效setCurrentRoom(Room Room){this.currentRoom=Room;}
public void setEffect(int effect){this.effect=effect;}
public void setStack(int stack){this.stack=stack;}
公共无效输入(房间){this.currentRoom=Room;}
//抽象方法,因为每个玩家有不同的攻击;
public void takeDamage(int-damage){setCurrentHealth(this.currentHealth-damage);}
公共布尔ISDED(){

如果(this.currentHealth房间是一个项目向量,对吗?如果是这样,你可以在播放器类上执行一个函数,当调用它时,它会转到你所在房间的向量,并简单地打印出向量中的项目,类似这样:

String lookAround(){
    ArrayList temp = (ArrayList)getCurrentRoom(); //returns the array containing the items in the current room
    for(Thing i : temp){
        i.getDescription(); //Method present in all classes that come from Thing that prints out the name of the item and/or its caracheteristics
    }
}
在房间的数组中,你应该尝试包括房间里所有玩家的名字,包括你自己,这样你就可以打印出房间里的每个人


希望这能有所帮助

我建议您首先创建一个属性为
name
的类
Npc
,并将其添加到文件室。

文件室应该打印自己的数据并将其存储,所以您需要在该类中创建该函数,并将Npc也存储在一个文件室中。嗨@dave,我有一个文件室类,但他没有发布它re因为发布的时间太长了。但是,我明白了,请评论一下。你能展示一下图片吗?Tiago_nes我上传了图片给你,让舒尔明白你的问题。你想在玩家在同一个房间时显示npc和物品名称吗?刚才才意识到你的
物品是
东西
public abstract class Player{

//abstract attributes
private String name;
private int currentHealth;
private int maxHealth;
private int damage;
private Room currentRoom;
private int stack;
private int effect;


//Constructor for player
public Player(String name, int currentHealth, int maxHealth, int damage, int effect, int stack){
    this.name = name;
    this.currentHealth = currentHealth;
    this.maxHealth = maxHealth;
    this.damage = damage;
    this.effect = effect;
    this.stack = stack;
}

//getters
public String getName(){ return name;}
public int  getCurrentHealth(){ return currentHealth;}
public int getMaxHealth(){ return maxHealth;}
public int getDamage(){ return damage;}
public Room getCurrentRoom(){ return currentRoom;}
public int getEffect(){ return effect;}
public int getStack(){ return stack;}


//setters
public void setCurrentHealth(int currentHealth){this.currentHealth = currentHealth;}
public void setMaxHealth(int maxHealth){this.maxHealth = maxHealth;}
public void setDamage(int damage){ this.damage = damage;}
public void setCurrentRoom(Room room){this.currentRoom = room;}
public void setEffect(int effect){ this.effect = effect;}
public void setStack(int stack){ this.stack = stack;}
public void enter(Room room){ this.currentRoom = room;}

//abstract method because each player has a different attack;


public void takeDamage(int damage){ setCurrentHealth(this.currentHealth-damage);}

public boolean isDead(){
    if(this.currentHealth<=0){ return true;}
    return false;
}
String lookAround(){
    ArrayList temp = (ArrayList)getCurrentRoom(); //returns the array containing the items in the current room
    for(Thing i : temp){
        i.getDescription(); //Method present in all classes that come from Thing that prints out the name of the item and/or its caracheteristics
    }
}