在Objective-C中为游戏创建“房间”

时间:2011-10-07 00:19:23

标签: objective-c macos cocoa

我在objective-c中开发基于文本的冒险游戏,我已经完成了很多部分,包括输入/​​输出系统和命令解析器。我唯一想不到的是创建“房间”的最佳方式。

起初我尝试使用XML来存储它们,然后使用NSXMLParser来读取它们,但这并没有足够的复杂性。

所以现在我决定创建一个类“AbstractLocation”并为每个房间创建一个子类。 但是,我无法连接所有东西。这些是我的课程:

控制器      控制游戏的输入/输出和核心部分 AbstractLocation      游戏的通用空间,可以创建子类以创建每个特定的房间 CreateMap      从AbstractLocation类创建每个特定的房间 Location_room1 Location_room2 等...

我想知道如何从每个Location_roomx访问Interface Builder中创建的Controller类的实例,因为每个房间都是在CreateMap类中以编程方式创建的,所以我不能使用IBOutlet。

如果我也愿意为更好的方式创建游戏的房间系统提供建议。

1 个答案:

答案 0 :(得分:1)

您不需要IBOutlet。

只需在AbstractLocation上定义一个属性,并在创建房间的代码中,为它指定一个指向Controller的指针。

IBOutlet的目的是让Interface Builder做同样的事情,但没有代码。在编写代码时,您不需要IBOutlet,只需要一个属性和代码来为其赋值。