如何只在arraylist上应用一次实例

时间:2017-10-26 21:42:10

标签: java methods

我用Rooms的方法制作一个文字冒险游戏,我的玩家可以通过它。 Rooms接受RoomInfo课程,其中包含其他会议室的路线,以及Event课程,该课程将事件应用于每个房间。但是,我希望这些事件只适用一次。有没有这样做的方法?

public class RoomDef
{
    private ArrayList<RoomInfo> rooms;

    public void defRooms()
    {
        rooms.add(new RoomInfo(..., new Event(20, 0)));
        rooms.add(new RoomInfo(..., new Event(-30, 0)));
        rooms.add(new RoomInfo(..., new Event(10, 10)));
    }
}

我可以添加一个在应用事件后变为false的布尔值吗?

这是我的RoomInfo类的构造函数:

RoomInfo(String roomEventText, int roomNumber, Event events) 
{
    this.roomEventText = roomEventText;
    this.roomNumber = roomNumber;
    this.events = events;
}

这是我的Event类的构造函数:

public Event(int life, int damagePoint)
{
    this.life = life; 
    this.damagePoint = damagePoint;
}

我可以在这里添加一个布尔值吗?

1 个答案:

答案 0 :(得分:0)

DavidW的解决方案可能对您的使用很好,但是长期而言更常见的是保留events属性而不是使用布尔值。 (这将使例如重置房间而不重建它们或允许像&#34;撤消&#34;移动)。

添加到RoomInfo

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {

    for touch in touches{

        let locationUser = touch.location(in: self)

        }}

然后当您使用RoomInfo时,您将执行以下操作:

private boolean visited = false;
public boolean isVisited() { return visited; }
public void setVisited(boolean visited) { this.visited = visited; }