def loadGame(self, name): from pyf.interface.package import Importer self.zip = Importer(name) self.game = self.zip.game()
class GameWindow(wx.Frame): ID_CLOSE_WINDOW = 300 def __init__(self, parent, id): wx.Frame.__init__(self, parent, id, size=(400, 700)) self.html = HTMLDisplay(self) self.input = TextInput(self) self.button = wx.Button(self, label='') self.Connect(self.input.GetId(), wx.ID_ANY, wx.wxEVT_COMMAND_TEXT_ENTER, self.newLine) self.sizer = wx.BoxSizer(wx.VERTICAL) self.lowSizer = wx.BoxSizer(wx.HORIZONTAL) self.lowSizer.Add(self.button, flag=wx.EXPAND, proportion=0) self.lowSizer.Add(self.input, flag=wx.EXPAND, proportion=1) self.sizer.Add(self.html, 1, wx.EXPAND) self.sizer.Add(self.lowSizer, flag=wx.EXPAND, proportion=0) self.SetSizer(self.sizer) self.SetAutoLayout(1) self.Centre() m = GameMenuBar() wx.EVT_MENU(self, m.CHANGE_FONT, lambda event: self.html.setFont()) self.SetMenuBar(m) self.Show(True) self.input.SetFocus() def onClose(self, event): self.Close() def showLine(self): if self.html.nextLine(): self.input.Enable() self.input.SetFocus() self.input.Clear() else: self.input.Disable() self.html.SetFocus() self.html.Bind(wx.EVT_KEY_DOWN, self.onKeyDown) self.input.SetValue('[More]') def onKeyDown(self, event): self.showLine() def newLine(self, event): string = self.input.newLine() string = string.encode() self.html.appendLines( ['<p>' + self.game.actor.state.request + ' ' + string + '</p>'] + self.game.input(string).lines) self.showLine() self.button.SetLabel(self.game.actor.state.request) if self.game.actor.state == pyf.states.Finished: self.input.Disable() def initGame(self): self.html.SetPage('') self.input.Clear() # show initial description o = self.game.getIntro() self.html.appendLines(o.lines) self.showLine() self.SetTitle(self.game.name) self.button.SetLabel(self.game.actor.state.request) self.input.Enable() def loadGame(self, name): from pyf.interface.package import Importer self.zip = Importer(name) self.game = self.zip.game()
class GameWindow(wx.Frame): ID_CLOSE_WINDOW = 300 def __init__(self, parent, id): wx.Frame.__init__(self, parent, id, size=(400, 700)) self.html = HTMLDisplay(self) self.input = TextInput(self) self.button = wx.Button(self, label='') self.Connect(self.input.GetId(), wx.ID_ANY, wx.wxEVT_COMMAND_TEXT_ENTER, self.newLine) self.sizer = wx.BoxSizer(wx.VERTICAL) self.lowSizer = wx.BoxSizer(wx.HORIZONTAL) self.lowSizer.Add(self.button,flag=wx.EXPAND, proportion=0) self.lowSizer.Add(self.input,flag=wx.EXPAND, proportion=1) self.sizer.Add(self.html,1,wx.EXPAND) self.sizer.Add(self.lowSizer, flag=wx.EXPAND, proportion=0) self.SetSizer(self.sizer) self.SetAutoLayout(1) self.Centre() m = GameMenuBar() wx.EVT_MENU(self, m.CHANGE_FONT, lambda event: self.html.setFont()) self.SetMenuBar(m) self.Show(True) self.input.SetFocus() def onClose(self, event): self.Close() def showLine(self): if self.html.nextLine(): self.input.Enable() self.input.SetFocus() self.input.Clear() else: self.input.Disable() self.html.SetFocus() self.html.Bind(wx.EVT_KEY_DOWN, self.onKeyDown) self.input.SetValue('[More]') def onKeyDown(self, event): self.showLine() def newLine(self, event): string = self.input.newLine() string = string.encode() self.html.appendLines(['<p>' + self.game.actor.state.request +' '+ string + '</p>'] + self.game.input(string).lines) self.showLine() self.button.SetLabel(self.game.actor.state.request) if self.game.actor.state == pyf.states.Finished: self.input.Disable() def initGame(self): self.html.SetPage('') self.input.Clear() # show initial description o = self.game.getIntro() self.html.appendLines(o.lines) self.showLine() self.SetTitle(self.game.name) self.button.SetLabel(self.game.actor.state.request) self.input.Enable() def loadGame(self, name): from pyf.interface.package import Importer self.zip = Importer(name) self.game = self.zip.game()