Skip to content

20240126

NPC 分好类了

我们的NPC实现非常的诡异

由于我们想要实现纯 NPC,希望定义的时候就能够实现大部分功能

因此我们传递了一个构造器

比如:

self.npcs.add(DialogNPC(self.width // 3, self.height // 3, "和蔼的新手村导师",
    dialog = lambda skinPath, name : DialogBox(self.window, skinPath, name, [f"你好,{os.getlogin()},欢迎来到靶场","你将扮演一位名为「旅行者」的神秘角色,逐步发掘原神的真相"], Archive.talkType)))

因为我们不仅需要 NPC 本身的信息(名字,图片),还想要能够自定义说话内容,而且在定义的时候就决定了其功能

于是我们直接传入一个 lambda 表达式用来构造

非常诡异的做法