我用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;
}
我可以在这里添加一个布尔值吗?
答案 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; }