Ejemplo n.º 1
0
 def __makeGagButton(self, gagName, trackName):
     gui = loader.loadModel('phase_3.5/models/gui/inventory_gui.bam')
     icons = loader.loadModel('phase_3.5/models/gui/inventory_icons.bam')
     icon = icons.find(GagGlobals.InventoryIconByName[gagName])
     index = GagGlobals.TrackGagNamesByTrackName[trackName].index(gagName)
     xValue = GagButtonXValues[index]
     button = DirectButton(relief=None, image=(gui.find('**/InventoryButtonUp'),
      gui.find('**/InventoryButtonDown'),
      gui.find('**/InventoryButtonRollover'),
      gui.find('**/InventoryButtonFlat')), geom=icon, geom_scale=0.6, parent=self.trackByName[trackName])
     button.setX(xValue)
     self.gagButtonByName[gagName] = button
     return
 def __makeGagButton(self, gagName, trackName):
     gui = loader.loadModel('phase_3.5/models/gui/inventory_gui.bam')
     icons = loader.loadModel('phase_3.5/models/gui/inventory_icons.bam')
     icon = icons.find(GagGlobals.InventoryIconByName[gagName])
     index = GagGlobals.TrackGagNamesByTrackName[trackName].index(gagName)
     xValue = GagButtonXValues[index]
     button = DirectButton(relief=None, image=(gui.find('**/InventoryButtonUp'),
      gui.find('**/InventoryButtonDown'),
      gui.find('**/InventoryButtonRollover'),
      gui.find('**/InventoryButtonFlat')), geom=icon, geom_scale=0.6, parent=self.trackByName[trackName], text=str(base.localAvatar.getBackpack().getSupply(gagName)), text_align=TextNode.ARight, text_scale=0.04, text_fg=Vec4(1, 1, 1, 1), text_pos=(0.07,
                                                                                                                                                                                                                                                        -0.04))
     button.setX(xValue)
     self.gagButtonByName[gagName] = button
     return
Ejemplo n.º 3
0
 def MakeButton(self, egg, up, over, x, y, cmd, parent):
     maps = loader.loadModel("Assets/Images/Inventory/%s" % (egg))
     b = DirectButton(geom = (maps.find('**/%s' % (up)),
                      maps.find('**/%s' % (over)),
                      maps.find('**/%s' % (over)),
                      maps.find('**/%s' % (up))),
                      command = cmd,
                      pressEffect = 0,
                      relief = None,
                      rolloverSound = None, 
                      clickSound = None,
                      scale = (150./1024.0, 1, 75.0/1024.0))
     b.reparentTo(parent)
     b.hide()
     
     diff = Settings.WIDTH - Settings.HEIGHT
     xOff = 0
     yOff = 0
     if(diff > 0):
         xOff = diff / 2
     else:
         yOff = diff / 2
     
     x = Settings.Transpose(x + 50, 1024) + xOff
     y = Settings.Transpose(y + 25, 1024) + yOff
         
     centerX = Settings.WIDTH / 2
     centerY = Settings.HEIGHT / 2
     
     newX = 1.0 * (x - centerX) / (centerX - xOff)
     newY = 1.0 * (centerY - y) / (centerY - yOff)
     
     b.setX(newX)
     b.setZ(newY)
     
     return b
Ejemplo n.º 4
0
class Game(DirectObject):

    def __init__(self):
        self.player = Blanka(self)
        self.ryu = Ryu()

        self.setup_panda()
        self.setup_keys()
        self.load_sounds()
        self.load_textures()
        self.load_sprites()
        self.setup_gui()
        self.start_game()

    def setup_panda(self):
        FPS = 30
        globalClock = ClockObject.getGlobalClock()
        globalClock.setMode(ClockObject.MLimited)
        globalClock.setFrameRate(FPS)

    def setup_keys(self):
        self.keys = {'move_left': 0, 'move_right': 0, 'jump': 0}
        self.accept('escape', sys.exit)
        self.accept('arrow_left',     self.set_key, ['move_left', 1])
        self.accept('arrow_left-up',  self.set_key, ['move_left', 0])
        self.accept('arrow_right',    self.set_key, ['move_right', 1])
        self.accept('arrow_right-up', self.set_key, ['move_right', 0])
        self.accept('arrow_up',       self.set_key, ['jump', 1])
        self.accept('arrow_up-up',    self.set_key, ['jump', 0])

    def set_key(self, key, value):
        self.keys[key] = value

    def setup_game_task(self):
        self.game_task = taskMgr.add(self.game_loop, 'game_loop')
        self.game_task.last = 0
        taskMgr.add(self.player.manage_collisions, 'manage_collisions')

    def load_sounds(self):
        music = loader.loadSfx('sound/guile_theme.ogg')
        music.setLoop(True)
        music.setVolume(0.7)
        music.play()

    def load_textures(self):
        self.player.load_textures()
        self.ryu.load_textures()
        self.background_sprite = loader.loadTexture('im/Stage.png')
        self.ko_image = loader.loadTexture('im/KO.png')

    def load_sprites(self):
        stage = load_object(self.background_sprite, scale=550, pos=Point3(0, 400, 0), transparency=False)
        self.ryu.load_sprite()
        self.player.load_sprite()

    def setup_gui(self):
        self.ko = load_object(self.ko_image, scale=10, transparency=True, pos=(0, 40, 0))
        self.play_again_button = DirectButton(text = "Play again", scale=0.2, command=self.start_game)
        self.init_gui()

    def game_loop(self, task):
        dt = task.time - task.last
        task.last = task.time
        self.player.update_position()
        return task.cont

    def start_game(self):
        self.init_gui()
        taskMgr.add(self.ryu.begin_to_throw, 'begin_to_throw')
        self.setup_game_task()

    def init_gui(self):
        self.ko.reparentTo(hidden)
        self.ko.setSx(20)
        self.play_again_button.setZ(100)
        self.play_again_button.setX(0.05)

    def end_game(self):
        self.ryu.win_sound.play()
        self.ryu.hadouken.move_to_initial_position()
        self.ryu.hadouken.set_hidden(True)
        self.ryu.state = 'idle'

        taskMgr.remove('manage_collisions')
        taskMgr.remove('game_loop')
        taskMgr.remove('throw_hadoukens')
        taskMgr.remove('move_hadouken')

        self.ko.reparentTo(camera)
        self.play_again_button.setZ(-0.8)
Ejemplo n.º 5
0
class Game(DirectObject):
    def __init__(self):
        self.player = Blanka(self)
        self.ryu = Ryu()

        self.setup_panda()
        self.setup_keys()
        self.load_sounds()
        self.load_textures()
        self.load_sprites()
        self.setup_gui()
        self.start_game()

    def setup_panda(self):
        FPS = 30
        globalClock = ClockObject.getGlobalClock()
        globalClock.setMode(ClockObject.MLimited)
        globalClock.setFrameRate(FPS)

    def setup_keys(self):
        self.keys = {'move_left': 0, 'move_right': 0, 'jump': 0}
        self.accept('escape', sys.exit)
        self.accept('arrow_left', self.set_key, ['move_left', 1])
        self.accept('arrow_left-up', self.set_key, ['move_left', 0])
        self.accept('arrow_right', self.set_key, ['move_right', 1])
        self.accept('arrow_right-up', self.set_key, ['move_right', 0])
        self.accept('arrow_up', self.set_key, ['jump', 1])
        self.accept('arrow_up-up', self.set_key, ['jump', 0])

    def set_key(self, key, value):
        self.keys[key] = value

    def setup_game_task(self):
        self.game_task = taskMgr.add(self.game_loop, 'game_loop')
        self.game_task.last = 0
        taskMgr.add(self.player.manage_collisions, 'manage_collisions')

    def load_sounds(self):
        music = loader.loadSfx('sound/guile_theme.ogg')
        music.setLoop(True)
        music.setVolume(0.7)
        music.play()

    def load_textures(self):
        self.player.load_textures()
        self.ryu.load_textures()
        self.background_sprite = loader.loadTexture('im/Stage.png')
        self.ko_image = loader.loadTexture('im/KO.png')

    def load_sprites(self):
        stage = load_object(self.background_sprite,
                            scale=550,
                            pos=Point3(0, 400, 0),
                            transparency=False)
        self.ryu.load_sprite()
        self.player.load_sprite()

    def setup_gui(self):
        self.ko = load_object(self.ko_image,
                              scale=10,
                              transparency=True,
                              pos=(0, 40, 0))
        self.play_again_button = DirectButton(text="Play again",
                                              scale=0.2,
                                              command=self.start_game)
        self.init_gui()

    def game_loop(self, task):
        dt = task.time - task.last
        task.last = task.time
        self.player.update_position()
        return task.cont

    def start_game(self):
        self.init_gui()
        taskMgr.add(self.ryu.begin_to_throw, 'begin_to_throw')
        self.setup_game_task()

    def init_gui(self):
        self.ko.reparentTo(hidden)
        self.ko.setSx(20)
        self.play_again_button.setZ(100)
        self.play_again_button.setX(0.05)

    def end_game(self):
        self.ryu.win_sound.play()
        self.ryu.hadouken.move_to_initial_position()
        self.ryu.hadouken.set_hidden(True)
        self.ryu.state = 'idle'

        taskMgr.remove('manage_collisions')
        taskMgr.remove('game_loop')
        taskMgr.remove('throw_hadoukens')
        taskMgr.remove('move_hadouken')

        self.ko.reparentTo(camera)
        self.play_again_button.setZ(-0.8)