def on_enter(self): # Sprites sprite_instance = Sprite() sprite_instance.image = 'art/pug.png' sprite_instance.layer = 'Background' sprite_instance.position.x = 400.0 sprite_instance.position.y = 300.0
def on_start(self): "Create a blackout sprite and start it fading out" PigDirector.scene.add_layer("overlay") sprite = Sprite() sprite.set_layer("overlay") sprite.image_file = "art/block.png" size = Opioid2D.Display.get_view_size() sprite.scale = (size[0] / 2, size[1] / 2) sprite.tint = (0, 0, 0) sprite.position = sprite.scale sprite.do( AlphaFade(0,self.blackout_secs) + \ CallFunc(PigDirector.scene.delete_layer, "overlay") )
def on_switch_scene(self, scene): "Create a blackout sprite and start it fading in" PigDirector.scene.add_layer("overlay") sprite = Sprite() sprite.set_layer("overlay") sprite.image_file = "art/block.png" size = Opioid2D.Display.get_view_size() sprite.scale = (size[0]/2,size[1]/2) sprite.tint = (0,0,0) sprite.alpha = 0 sprite.position = sprite.scale PigDirector.scene.block_switch_scene( sprite) sprite.do( AlphaFade(1,self.blackout_secs) + \ CallFunc(PigDirector.scene.block_switch_scene, sprite, False) )
def on_start(self): "Create a blackout sprite and start it fading out" PigDirector.scene.add_layer("overlay") sprite = Sprite() sprite.set_layer("overlay") sprite.image_file = "art/block.png" size = Opioid2D.Display.get_view_size() sprite.scale = (size[0]/2,size[1]/2) sprite.tint = (0,0,0) sprite.position = sprite.scale sprite.do( AlphaFade(0,self.blackout_secs) + \ CallFunc(PigDirector.scene.delete_layer, "overlay") )
def on_switch_scene(self, scene): "Create a blackout sprite and start it fading in" PigDirector.scene.add_layer("overlay") sprite = Sprite() sprite.set_layer("overlay") sprite.image_file = "art/block.png" size = Opioid2D.Display.get_view_size() sprite.scale = (size[0] / 2, size[1] / 2) sprite.tint = (0, 0, 0) sprite.alpha = 0 sprite.position = sprite.scale PigDirector.scene.block_switch_scene(sprite) sprite.do( AlphaFade(1,self.blackout_secs) + \ CallFunc(PigDirector.scene.block_switch_scene, sprite, False) )
def _post_init(self): app = wx.GetApp() app.set_pug_settings( self.pug_settings) code_exceptions = {} initial_scene = getattr(self.pug_settings, 'initial_scene', 'Scene') self.reload_components( doReload=True) self.reload_scene_list( doReload=True) # initial scene if initial_scene != 'Scene' and initial_scene in self.sceneDict: # test initial scene try: test_scene_code( initial_scene) except: key = '*Error loading initial scene ('+initial_scene+')' code_exceptions[key] = sys.exc_info() self.set_scene( Scene) else: self.set_scene( initial_scene) else: self.set_scene( Scene) # default menus if not self.__cached[2]: app.add_global_menu("&File", [["New Project", self.new_project, "Create a new Pig project"], ["Open Project", self.open_project, "Open a Pig project"], ["*DIVIDER*"], ["&New Scene\tCtrl+N", [self.set_scene, ("Scene", True), {}], "Create a new Scene"], ["&Save...\tCtrl+S", save_scene, "Save scene"], ["Save &As...\tCtrl+A", save_scene_as, "Save scene as"], ["New &Object\tShift+Ctrl+N", self.add_object, "Add the currently selected add object to the scene"], ["*DIVIDER*"], # ["Selection Tab", self.open_selection_frame, # "Open a new tab to view selected objects"], ["Open Code &Editor\tCtrl+E", open_code_editor, "Open python code editor."], ["Browse Project &Folder\tCtrl+F", self.open_project_folder, "Open the project's folder in a browser"], ["Show All &Windows\tCtrl+W", app.raise_all_frames, "Show all open Pug Windows"], ["&Quit\tCtrl+Q", self.quit]]) app.add_global_menu("&Edit", [["Undo\tCtrl+Z", app.history.undo, "Undo last change group"], ["Redo\tCtrl+Y", app.history.redo, "Redo last undo group"], ["Small Undo\tShift+Ctrl+Z", app.history.small_undo, "Undo last individual change"], ["Small Redo\tShift+Ctrl+Y", app.history.small_redo, "Redo last individual undo"], ["*DIVIDER*"], ["Cut\tCtrl+X", self.cut_selected, "Cut selection"], ["Copy\tCtrl+C", self.copy_selected, "Copy selection"], ["Paste\tCtrl+V", self.paste_clipboard, "Paste selection"]]) self.__cached[2]=True # open MDI frame if not app.get_project_frame(): frame = PugMDI( [[self, {'objectpath':"Project",'name':"ProjectFrame"}], [self.scene, {'title':"Scene",'name':"SceneFrame"}], ['selection', {'name':"Selection"}], ], title=''.join(["P.I.G. Editor - ", self.project_name]), name="Pig Editor", show=False) app.set_project_frame(frame) else: frame = app.get_project_frame() target = FileDropTarget(self) frame.SetDropTarget( target) frame.GetNotebook().Split(2, wx.LEFT) size = frame.GetSize() frame.GetNotebook().GetPage(1).SetSize([size[0]/2,size[1]]) wx.FindWindowByName("ProjectFrame").Activate() frame._on_raise_all_frames = self.raise_canvas # attach window manager to opioid window opioid_rect = self.pug_settings.rect_opioid_window # x, y, w, h options = dict(pos=tuple(opioid_rect[0:2]), size=tuple(opioid_rect[2:4]), opengl=True, doublebuff=True, hardware=True) canvas_options = canvas_manager.getDefaultOptions() canvas_options.update(options) self.canvas = canvas_manager( canvas_options) self.frame = frame # cache a sprite view for speed on first selection if not self.__cached[0]: dummy = Sprite( register=False) cache_default_view( dummy) dummy.delete() while dummy in self.Director.scene.nodes: time.sleep(0.1) self.__cached[0] = True self._initialized = True # Import Psyco if available try: import psyco psyco.full() except ImportError: pass # create a project file error report at startup self.reload_project_files( errors=code_exceptions, save_reload=False) # for some reason, canvas needs to be activated before sound plays wx.CallLater(111,self.canvas.Activate) wx.CallLater(222,frame.Raise) wx.CallLater(222,frame.Show)
def enter(self, font_file=None, font_size=None, unpause_keys=[]): from pug.all_components import Textbox from pig import Sprite from pig.util import get_display_center PauseState.enter( self, unpause_keys=unpause_keys) backSprite = Sprite() backSprite.set_image('art/block.png') backSprite.color = (0, 0, 0, 0.8) backSprite.set_layer('__pause__') gameOverSprite = Sprite() pressKeySprite = Sprite() textarg = {'text':'GAME OVER', 'hotspot':(0.5, 0.5)} if font_file: textarg['font_file']=font_file if font_size: textarg['font_size']=font_size text = gameOverSprite.components.add( Textbox( **textarg)) text.do_set_text() # have to do it manually because we're paused textarg['text'] = 'Press Any Key' text = pressKeySprite.components.add( Textbox( **textarg)) text.do_set_text() gameOverSprite.position = get_display_center() pressKeySprite.position = (gameOverSprite.position[0], gameOverSprite.position[1] + \ gameOverSprite.image.get_height()) backSprite.scale = (max(gameOverSprite.image.get_width(), pressKeySprite.image.get_width()) / 2.0, (gameOverSprite.image.get_height() + \ pressKeySprite.image.get_height()) / 2.0) backSprite.position = (gameOverSprite.position[0], (gameOverSprite.position[1] + \ pressKeySprite.position[1]) / 2.0 ) gameOverSprite.set_layer('__text__') pressKeySprite.set_layer('__text__') self.gameOverSprite = gameOverSprite self.starttime = time.time() self.restart = False
def _post_init(self): app = wx.GetApp() app.set_pug_settings(self.pug_settings) code_exceptions = {} initial_scene = getattr(self.pug_settings, 'initial_scene', 'Scene') self.reload_components(doReload=True) self.reload_scene_list(doReload=True) # initial scene if initial_scene != 'Scene' and initial_scene in self.sceneDict: # test initial scene try: test_scene_code(initial_scene) except: key = '*Error loading initial scene (' + initial_scene + ')' code_exceptions[key] = sys.exc_info() self.set_scene(Scene) else: self.set_scene(initial_scene) else: self.set_scene(Scene) # default menus if not self.__cached[2]: app.add_global_menu( "&File", [ [ "New Project", self.new_project, "Create a new Pig project" ], ["Open Project", self.open_project, "Open a Pig project"], ["*DIVIDER*"], [ "&New Scene\tCtrl+N", [self.set_scene, ("Scene", True), {}], "Create a new Scene" ], ["&Save...\tCtrl+S", save_scene, "Save scene"], ["Save &As...\tCtrl+A", save_scene_as, "Save scene as"], [ "New &Object\tShift+Ctrl+N", self.add_object, "Add the currently selected add object to the scene" ], ["*DIVIDER*"], # ["Selection Tab", self.open_selection_frame, # "Open a new tab to view selected objects"], [ "Open Code &Editor\tCtrl+E", open_code_editor, "Open python code editor." ], [ "Browse Project &Folder\tCtrl+F", self.open_project_folder, "Open the project's folder in a browser" ], [ "Show All &Windows\tCtrl+W", app.raise_all_frames, "Show all open Pug Windows" ], ["&Quit\tCtrl+Q", self.quit] ]) app.add_global_menu( "&Edit", [["Undo\tCtrl+Z", app.history.undo, "Undo last change group"], ["Redo\tCtrl+Y", app.history.redo, "Redo last undo group"], [ "Small Undo\tShift+Ctrl+Z", app.history.small_undo, "Undo last individual change" ], [ "Small Redo\tShift+Ctrl+Y", app.history.small_redo, "Redo last individual undo" ], ["*DIVIDER*"], ["Cut\tCtrl+X", self.cut_selected, "Cut selection"], ["Copy\tCtrl+C", self.copy_selected, "Copy selection"], ["Paste\tCtrl+V", self.paste_clipboard, "Paste selection"]]) self.__cached[2] = True # open MDI frame if not app.get_project_frame(): frame = PugMDI([ [self, { 'objectpath': "Project", 'name': "ProjectFrame" }], [self.scene, { 'title': "Scene", 'name': "SceneFrame" }], ['selection', { 'name': "Selection" }], ], title=''.join( ["P.I.G. Editor - ", self.project_name]), name="Pig Editor", show=False) app.set_project_frame(frame) else: frame = app.get_project_frame() target = FileDropTarget(self) frame.SetDropTarget(target) frame.GetNotebook().Split(2, wx.LEFT) size = frame.GetSize() frame.GetNotebook().GetPage(1).SetSize([size[0] / 2, size[1]]) wx.FindWindowByName("ProjectFrame").Activate() frame._on_raise_all_frames = self.raise_canvas # attach window manager to opioid window opioid_rect = self.pug_settings.rect_opioid_window # x, y, w, h options = dict(pos=tuple(opioid_rect[0:2]), size=tuple(opioid_rect[2:4]), opengl=True, doublebuff=True, hardware=True) canvas_options = canvas_manager.getDefaultOptions() canvas_options.update(options) self.canvas = canvas_manager(canvas_options) self.frame = frame # cache a sprite view for speed on first selection if not self.__cached[0]: dummy = Sprite(register=False) cache_default_view(dummy) dummy.delete() while dummy in self.Director.scene.nodes: time.sleep(0.1) self.__cached[0] = True self._initialized = True # Import Psyco if available try: import psyco psyco.full() except ImportError: pass # create a project file error report at startup self.reload_project_files(errors=code_exceptions, save_reload=False) # for some reason, canvas needs to be activated before sound plays wx.CallLater(111, self.canvas.Activate) wx.CallLater(222, frame.Raise) wx.CallLater(222, frame.Show)
def enter(self, font_file=None, font_size=None, unpause_keys=[]): from pug.all_components import Textbox from pig import Sprite from pig.util import get_display_center PauseState.enter(self, unpause_keys=unpause_keys) backSprite = Sprite() backSprite.set_image('art/block.png') backSprite.color = (0, 0, 0, 0.8) backSprite.set_layer('__pause__') gameOverSprite = Sprite() pressKeySprite = Sprite() textarg = {'text': 'GAME OVER', 'hotspot': (0.5, 0.5)} if font_file: textarg['font_file'] = font_file if font_size: textarg['font_size'] = font_size text = gameOverSprite.components.add(Textbox(**textarg)) text.do_set_text() # have to do it manually because we're paused textarg['text'] = 'Press Any Key' text = pressKeySprite.components.add(Textbox(**textarg)) text.do_set_text() gameOverSprite.position = get_display_center() pressKeySprite.position = (gameOverSprite.position[0], gameOverSprite.position[1] + \ gameOverSprite.image.get_height()) backSprite.scale = (max(gameOverSprite.image.get_width(), pressKeySprite.image.get_width()) / 2.0, (gameOverSprite.image.get_height() + \ pressKeySprite.image.get_height()) / 2.0) backSprite.position = (gameOverSprite.position[0], (gameOverSprite.position[1] + \ pressKeySprite.position[1]) / 2.0 ) gameOverSprite.set_layer('__text__') pressKeySprite.set_layer('__text__') self.gameOverSprite = gameOverSprite self.starttime = time.time() self.restart = False