Beispiel #1
0
class ShipOrderFire(object):
    messages = [
        u"Let 'em have it!",
        u"Fire!",
        u"Give 'em a full broadside!",
    ]

    SOUNDS = [
        media('let_em_have_it.wav', streaming=False),
        media('fire.wav', streaming=False),
        media('give_em_full_broadside.wav', streaming=False),
    ]

    def __init__(self):
        self.message, self.sound = random.choice(zip(self.messages, self.SOUNDS))

    def get_message(self, ship):
        return self.message

    def act(self, ship):
        try:
            self.sound.play()
        except MediaException:
            pass
        ship.fire()
Beispiel #2
0
    def __init__(self, number):
        self.keysdown = []
        self.controllable = False
        self.entities = []
        self.level = number
        self.musicres = [[
            resource.media('epikboss_INTRO.ogg'),
            resource.media('epikboss_loop.wav')
        ]]
        self.musicplayer = media.Player()

        self.batch = graphics.Batch()
        self.expsfx = media.Player()
        self.expsfx.queue(World.explo)
        self.expsfx.eos_action = "pause"

        self.s1sfx = media.Player()
        self.s1sfx.queue(World.s1)
        self.s1sfx.eos_action = "pause"

        self.s2sfx = media.Player()
        self.s2sfx.queue(World.s2)
        self.s2sfx.eos_action = "pause"

        self.s3sfx = media.Player()
        self.s3sfx.queue(World.s3)
        self.s3sfx.eos_action = "pause"

        self.layers = (pyglet.graphics.OrderedGroup(0),
                       pyglet.graphics.OrderedGroup(1),
                       pyglet.graphics.OrderedGroup(2),
                       pyglet.graphics.OrderedGroup(3),
                       pyglet.graphics.OrderedGroup(4))

        self.ui = UI(self)
Beispiel #3
0
class SettingsMenu(Menu):
    activate_sound = media(
        os.path.join('sounds', "Menu.wav"), streaming=False)
    select_sound = media(
        os.path.join('sounds', "Menu.wav"), streaming=False)

    def __init__(self):
        super(SettingsMenu, self).__init__()

        set_menu_theme(self)

        # then add the items
        self.home = MenuItem('Home', self.on_home)
        self.fullscreen = MenuItem('Toggle Full Screen', self.on_fullscreen)
        self.tutorial = MenuItem('Toggle Tutorial', self.on_tutorial)

        self.items = [
            (self.home),
            (self.fullscreen),
            (self.tutorial),
        ]

        self.create_menu(self.items, zoom_in(), zoom_out())

    def on_home(self):
        if constants.MUSIC:
            theme_player.stop()
        director.pop()

    def on_fullscreen(self):
        director.window.set_fullscreen(not director.window.fullscreen)


    def on_tutorial(self):
        constants.SHOW_TUTORIAL = not constants.SHOW_TUTORIAL
Beispiel #4
0
class LevelMenu(Menu):
    activate_sound = media(
        os.path.join('sounds', "Menu.wav"), streaming=False)
    select_sound = media(
        os.path.join('sounds', "Menu.wav"), streaming=False)

    def __init__(self,txt):
        super(LevelMenu, self).__init__("Select Level")
Beispiel #5
0
class EndMenu(Menu):
    activate_sound = media(
        os.path.join('sounds', "Menu.wav"), streaming=False)
    select_sound = media(
        os.path.join('sounds', "Menu.wav"), streaming=False)

    def __init__(self,txt,curLevel):
        super(EndMenu, self).__init__("Game Over, You " + txt)
        
        self.levelName = ""
        self.level = curLevel
        
        set_menu_theme(self)

        self.ok = MenuItem("Back to Main Menu",director.pop)

        if txt == "Lost":
            self.retry = MenuItem("Retry Level", self.on_retry)
            items = [(self.ok),(self.retry)]
            self.levelName = "level"+str(curLevel)
        elif curLevel <= 5:
            self.win = MenuItem("Next Level", self.on_win)
            items = [(self.ok),(self.win),]
            self.levelName = "level"+str(curLevel+1)
        else:
            self.end_scene = MenuItem("You Fired Mr Winely!",director.pop)
            items = [(self.ok),self.end_scene]

        self.create_menu(items,ScaleTo(1.3, duration=0.2),ScaleTo(1.0, duration=0.2))

    
    def on_win(self):
        Objects.reset_game()
        server = Objects.get_server(self.levelName)
        server.curLevel = self.level+1
        utils.play_sound("Enter.wav")
        game = Scene(server.map, server)
        game.add(ImageLayer(os.path.join("images", "backgrounds", "notebook-paper.png")), z=BACKGROUND_Z)
        director.push(game)
        menu_player.stop()
        self.game_started = True

    def on_retry(self):
        Objects.reset_game()
        server = Objects.get_server(self.levelName)
        server.curLevel = self.level
        utils.play_sound("Enter.wav")
        game = Scene(server.map, server)
        game.add(ImageLayer(os.path.join("images", "backgrounds", "notebook-paper.png")), z=BACKGROUND_Z)
        director.push(game)
        menu_player.stop()
        self.game_started = True

    def on_quit(self):
        director.pop()
Beispiel #6
0
    def __init__(self, songs):
        """The Music object will keep a playlist of songs, looping through them when played."""

        super(Music, self).__init__()

        for song in songs:
            song = media(song)
            self.queue(song)

        self.songs = cycle(songs)
        self.queue(media(self.songs.next()))
Beispiel #7
0
 def make_sound(filename):
     sound = resource.media(filename, streaming=False)
     def vplay():
         player = sound.play()
         player.volume = sound_volume
         return player
     sound.vplay = vplay
     return sound
Beispiel #8
0
    def __init__(self, sounds):
        """Load sounds into memory for immediate playing."""

        self.sounds = {}
        for sound in sounds:
            try:
                self.sounds[sound] = media(sound, streaming=False)
            except ResourceNotFoundException:
                pass
Beispiel #9
0
    def __init__(self):
        self.sound_on = False
        self.music_on = False

        def make_sound(filename):
            sound = resource.media(filename, streaming=False)
            def vplay():
                player = sound.play()
                player.volume = sound_volume
                return player
            sound.vplay = vplay
            return sound

        self.click = make_sound("click.wav")
        self.your_focus = make_sound("your_focus.wav")
        self.opponent_focus = make_sound("opponent_focus.wav")
        self.end_turn = make_sound("end_turn.wav")
        self.start_combat = make_sound("combat.wav")
        self.gamestart = make_sound("gamestart.wav")
        self.gameover = make_sound("gameover.wav")
        self.mana = make_sound("mana.wav")
        self.manaspent = make_sound("manaspent.wav")
        self.tap = make_sound("tap.wav")
        #self.clink = make_sound("ding.wav")
        #self.enter_sound = make_sound("card_entering_play.wav")
        #self.leave_sound = make_sound("card_leaving_play.wav")
        #self.play_ability = make_sound("play_ability.wav")
        #self.untap = make_sound("untap.wav")
        #self.lifeloss = make_sound("lifeloss.wav")

        if toggle_music:
            self.player = media.Player()
            self.player.queue(resource.media(background_file, streaming=True))
            self.player.eos_action = self.player.EOS_LOOP
        else:
            self.player = None

        self.connections = [(self.gamestart, GameEvent.GameStartEvent()),
                            (self.gameover, GameEvent.GameOverEvent()),
                            (self.your_focus, GUIEvent.MyPriority()),
                            (self.opponent_focus, GUIEvent.OpponentPriority()),
                            (self.end_turn, GameEvent.NewTurnEvent()),
                            (self.start_combat, GameEvent.DeclareAttackersEvent()),
                            (self.tap, GameEvent.CardTapped()),
                            #(self.tap, GameEvent.CardUntapped()),
                            #(self.lifeloss, GameEvent.LifeLostEvent()),
                            #(self.mana, GameEvent.ManaAdded()),
                            (self.manaspent,GameEvent.ManaSpent()),
                            #(self.clink, GUIEvent.FocusCard(), sender=dispatcher.Anonymous, priority=dispatcher.UI_PRIORITY)),
                            #(self_ability, GameEvent.AbilityAnnounced()),
                            #(self.enter_sound, GameEvent.CardEnteredZone()),
                            #(self.leave_sound, GameEvent.CardLeftZone()),
                            ]
Beispiel #10
0
class Sound:
    resource.path.append("../res/sound")
    resource.reindex()

    try:
        snd = resource.media("main_theme.mp3", streaming=False)
    except Exception as e:
        music = DummyPlayer()
        print(e)
    else:
        music = media.Player()
        music.queue(snd)
        music.loop = True

    sounds_name = [
        "big_jump", "brick_smash", "bump", "coin", "death", "flagpole",
        "game_over", "out_of_time", "powerup", "powerup_appears", "small_jump",
        "stage_clear", "stomp"
    ]

    sounds = defaultdict(DummyPlayer)

    for sound in sounds_name:
        try:
            sounds[sound] = resource.media(sound + ".mp3", streaming=False)
        except Exception as e:
            print(e)

    @classmethod
    def play(cls, name):
        if name == "mario":
            cls.music.play()
        else:
            cls.sounds[name].play()

    @classmethod
    def stop(cls, name):
        if name == "mario":
            cls.music.pause()
Beispiel #11
0
class ShipOrderDecelerate(ShipOrderAccelerate):
    messages = [
        u'',
        u"Ease off the mails'l!",
        u"Ease off all sail!",
        u"All stop!"
    ]

    SOUND = media('ease_off_the_mainsl.wav', streaming=False)

    def act(self, ship):
        try:
            self.SOUND.play()
        except MediaException:
            pass
        ship.sail.set(max(0, ship.sail.target - 1))
Beispiel #12
0
class ShipOrderHelm(object):
    messages = [
        u'Rudder amidships!',
        u'A little to {self.direction}!',
        u'Turn to {self.direction}!',
        u'Hard ta {self.direction}!'
    ]

    SOUNDS = {
        'centre': media('rudder_amidships.wav', streaming=False),
        'port': [
            media('a_little_to_port.wav', streaming=False),
            media('turn_to_port.wav', streaming=False),
            media('hard_to_port.wav', streaming=False),
        ],
        'starboard': [
            media('a_little_to_starboard.wav', streaming=False),
            media('turn_to_starboard.wav', streaming=False),
            media('hard_to_starboard.wav', streaming=False),
        ],
    }

    def __init__(self, direction, strength):
        assert direction in ('port', 'starboard')
        assert 0 <= strength <= 3
        self.direction = direction
        self.strength = -strength if direction == 'starboard' else strength

    def get_message(self, ship):
        return self.messages[abs(self.strength)].format(self=self)

    def act(self, ship):
        if self.strength == 0:
            sound = self.SOUNDS['centre']
        else:
            sound = self.SOUNDS[self.direction][abs(self.strength) - 1]
        try:
            sound.play()
        except MediaException:
            pass
        ship.helm.set(self.strength)
Beispiel #13
0
class ShipOrderAccelerate(object):
    messages = [
        u'',
        u'A touch more sail!',
        u'More sail!',
        u'Give me every scrap of sail!',
    ]

    SOUND = media('more_sail.wav', streaming=False)

    def __init__(self, strength):
        assert 0 <= strength <= 3
        self.strength = strength

    def get_message(self, ship):
        return self.messages[self.strength].format(self=self)

    def act(self, ship):
        try:
            self.SOUND.play()
        except MediaException:
            pass
        ship.sail.set(min(3, ship.sail.target + 1))
Beispiel #14
0
class MainMenu(Menu):
    activate_sound = media(
        os.path.join('sounds', "Menu.wav"), streaming=False)
    select_sound = media(
        os.path.join('sounds', "Menu.wav"), streaming=False)

    def __init__(self):
        super(MainMenu, self).__init__('Noteworks')

        set_menu_theme(self)

        self.levelName = constants.DEFAULT_MAP
        # then add the items
        self.instructions = MenuItem('Instructions', self.on_intro)
        self.space1 = MenuItem('', self.on_intro)
        self.single = MenuItem('Single-Player', self.on_single_player)
        self.space2 = MenuItem('', self.on_intro)
        self.mult = MenuItem("Multi-Player", self.on_multi)
        self.space3 = MenuItem('', self.on_intro)
        self.level = EntryMenuItem("Level Name:",self.on_level,self.levelName)
        self.space4 = MenuItem('', self.on_intro)
        self.ip = EntryMenuItem("Server IP:",self.on_ip,constants.SERVER_IP)
        self.space4 = MenuItem('', self.on_intro)
        self.exit = MenuItem('Exit', self.on_quit)

        self.items = [
            (self.instructions),
            #(self.space1),
            (self.single),
            #(self.space2),
            (self.mult),
            #(self.space3),
            (self.level),
            #(self.space4),
            self.ip,
            (self.exit),
        ]

        self.create_menu(self.items, zoom_in(), zoom_out())
        self.game_started = False

    def on_intro(self):
        utils.play_sound("Enter.wav")
        image = os.path.join("images", "backgrounds", "notebook-paper.png")
        director.push(Scene(Intro(image)))

    def on_level(self,val):
        self.levelName = str(val)

    def on_ip(self,val):
        constants.SERVER_IP = str(val)

    def on_enter(self):
        super(MainMenu, self).on_enter()
        constants.MUSIC = True
        menu_player.set_volume(2)
        if self.game_started:
            Objects.reset_game()
            self.game_started = False
        # buggy
        # self.children[0][1].do(self.children[0][1].selected_effect)  # making first item selected

    def on_single_player(self):
        Objects.get_server(self.levelName)
        server = Objects.get_controller()

        utils.play_sound("Enter.wav")
        game = Scene(server.map, server)
        game.add(ImageLayer(
                 os.path.join("images", "backgrounds", "notebook-paper.png")), z=BACKGROUND_Z)


        director.push(game)
        menu_player.stop()
        self.game_started = True

        # play_intro_animation(page_turn) #this is taking 2-3 seconds to load --Robert
        # director.replace( FadeTransition(main_scene,2,page_turn) )

    def on_quit(self):
        from twisted.internet import reactor
        reactor.stop()
        director.pop()

    def on_multi(self):
        utils.play_sound("Enter.wav")
        s = Scene(MultiplayerMenu(self.levelName))
        s.add(ImageLayer(os.path.join("images", "backgrounds", "menu-chalkboard.png")))
        director.push(s)
Beispiel #15
0
def init_globals():

    global keys
    keys = [
        "GRAVE", "_1", "_2", "_3", "_4", "_5", "_6", "_7", "_8", "_9", "_0",
        "MINUS", "EQUAL", "BACKSPACE", "TAB", "Q", "W", "E", "R", "T", "Y",
        "U", "I", "O", "P", "BRACKETLEFT", "BRACKETRIGHT", "BACKSLASH",
        "CAPSLOCK", "A", "S", "D", "F", "G", "H", "J", "K", "L", "SEMICOLON",
        "APOSTROPHE", "ENTER", "LSHIFT", "Z", "X", "C", "V", "B", "N", "M",
        "COMMA", "PERIOD", "SLASH", "RSHIFT"
    ]

    pyglet.resource.path = ["assets/", "audio/"]
    pyglet.resource.reindex()

    with pyglet.resource.file("keyboard.json") as f:
        data = json.loads(f.read())

    global key_rects
    key_rects = {
        keys[i]: data["frames"][str(i)]["frame"]
        for i in range(len(keys))
    }
    for key in keys:
        key_rects[key]["y"] = 320 - key_rects[key]["y"] - key_rects[key]["h"]

    global balls
    balls = []

    global trapped_balls
    trapped_balls = []

    global dead_balls
    dead_balls = []

    global ctrl_rect
    ctrl_rect = data["frames"][str(len(data["frames"]) - 1)]["frame"]
    ctrl_rect["y"] = 320 - ctrl_rect["y"] - ctrl_rect["h"]

    global launcher_state
    # [ctrl is pushed, frames it has been held, frames for 90+90deg]
    launcher_state = [False, 0, 150]

    global level_idx
    level_idx = -1

    global level
    level = {"default": ["none"]}

    global keys_pressed
    keys_pressed = {key: False for key in keys}

    global key_sounds
    key_sounds = [
        media("keyboard_%d.wav" % i, streaming=False) for i in range(1, 8)
    ]

    global bounce_sounds
    bounce_sounds = [
        media("keyboard_%d.wav" % i, streaming=False) for i in range(1, 3)
    ]

    global launch_sounds
    launch_sounds = [
        media("launch.wav", streaming=False),
        media("launch_empty.wav", streaming=False)
    ]

    global background_music_player
    background_music_player = pyglet.media.Player()
    background_music_player.volume = 0.025

    background_music = [
        media("Eva_soundtrack.wav", streaming=False),
        media("DzGrimX_soundtrack.wav", streaming=False)
    ]
    background_music_player.queue(background_music)
    global moths
    moths = []

    global menuActive  # 0 = game, 1 = title, 2 = tutorial
    menuActive = 1

    global dead_beachball_sprites
    dead_beachball_sprites = []

    global num_pressed
    num_pressed = 0
Beispiel #16
0
explosion_images_image = resource.image('explosion.png')
explosion_images = pyglet.image.ImageGrid(explosion_images_image, 2, 8)
explosion_images = explosion_images.get_texture_sequence()
for explosion_image in explosion_images:
    center_anchor(explosion_image)
explosion_animation = \
    pyglet.image.Animation.from_image_sequence(explosion_images,
                                               EXPLOSION_ANIMATION_PERIOD,
                                               loop=False)

pointer_image = resource.image('pointer.png')
pointer_image.anchor_x = pointer_image.width // 2
pointer_image.anchor_y = pointer_image.height // 2
pointer_image_flip = resource.image('pointer.png', flip_x=True)

explosion_sound = resource.media('explosion.wav', streaming=False)
bullet_sound = resource.media('bullet.wav', streaming=False)

starfield = Starfield(resource.image('starfield.jpg'))
player = Player(resource.image('ship.png'), wrapping_batch)
win.push_handlers(player)

# --------------------------------------------------------------------------
# Global game state vars
# --------------------------------------------------------------------------

overlay = None
in_game = False
paused = False
score = 0
Beispiel #17
0
explosion_images_image = resource.image('explosion.png')
explosion_images = pyglet.image.ImageGrid(explosion_images_image, 2, 8)
explosion_images = explosion_images.get_texture_sequence()
map(center_anchor, explosion_images)
explosion_animation = \
    pyglet.image.Animation.from_image_sequence(explosion_images,
                                               EXPLOSION_ANIMATION_PERIOD,
                                               loop=False)

pointer_image = resource.image('pointer.png')
pointer_image.anchor_x = pointer_image.width // 2
pointer_image.anchor_y = pointer_image.height // 2
pointer_image_flip = resource.image('pointer.png', flip_x=True)

explosion_sound = resource.media('explosion.wav', streaming=False)
bullet_sound = resource.media('bullet.wav', streaming=False)

starfield = Starfield(resource.image('starfield.jpg'))
player = Player(resource.image('ship.png'), wrapping_batch)
win.push_handlers(player)

# --------------------------------------------------------------------------
# Global game state vars
# --------------------------------------------------------------------------

overlay = None
in_game = False
paused = False
score = 0
Beispiel #18
0
    else:
        # Remove the new tail square because we didn't eat food.
        tail.pop(0)


def game_over_condition():
    # Collision with edge.
    condition1 = snk_x + snk_dx < 0 or snk_x + snk_dx > window.width - cell_size or snk_y + snk_dy < 0 or snk_y + snk_dy > window.height - cell_size
    # Collision with self.
    condition2 = (snk_x, snk_y) in tail
    return condition1 or condition2

# Setting streaming=false means we can play two eats at a time.
# Without this, eating two foods in quick succession can generate
# an error.
eat = resource.media('resources/eat_eff.wav', streaming=False)
crash = resource.media('resources/crash_eff.wav')
bgm1 = resource.media('resources/bgm1.wav')
bgm2 = resource.media('resources/bgm2.wav')
bgm3 = resource.media('resources/bgm3.wav')
bgm4 = resource.media('resources/bgm4.wav')
bgm5 = resource.media('resources/bgm5.wav')
playlist = cycle(
    [bgm1, bgm2, bgm3, bgm4, bgm5]
)  # itertools.cycle - list that loops back to the start when you reach the end

player = media.Player()
player.queue(playlist)
player.play()

# Not the length of the snake, but the width and height of a single snake segment.
Beispiel #19
0
class MultiplayerMenu(Menu):
    activate_sound = media(
        os.path.join('sounds', "Menu.wav"), streaming=False)
    select_sound = media(
        os.path.join('sounds', "Menu.wav"), streaming=False)

    def __init__(self,levelName):
        super(MultiplayerMenu, self).__init__('Multi-Player')
        self.host = MenuItem("Start Server and Wait", self.new_game)
        self.start = MenuItem("Finish Waiting, Start Game", self.start_game)
        self.join = MenuItem("Join Game", self.join_game)
        self.back = MenuItem("Back", self.on_quit)
        self.levelName = levelName
        items = [
            (self.host),
            (self.start),
            (self.join),
            (self.back),
        ]

        set_menu_theme(self)

        self.create_menu(items, zoom_in(), zoom_out())

        self.game_started = False

    def on_enter(self):
        super(MultiplayerMenu, self).on_enter()
        if self.game_started:
            Objects.reset_game()
            self.game_started = False

    def new_game(self):
        constants.MULTIPLAYER = True
        utils.play_sound("Enter.wav")
        Objects.get_server(self.levelName).start_server()
        # start server and wait

    def start_game(self):
        constants.MULTIPLAYER = True
        server = Objects.get_controller()
        server.client_start_game()
        if server.serverStarted:
            utils.play_sound("Enter.wav")
            game = Scene(server.map, server)
            menu_player.stop()
            game.add(ImageLayer(
                     os.path.join("images", "backgrounds", "notebook-paper.png")), z=BACKGROUND_Z)
            director.push(game)
            self.game_started = True

        else:
            print "start server first"

    def join_game(self):
        constants.MULTIPLAYER = True
        utils.play_sound("Enter.wav")
        c = Objects.get_client()
        c.start_server()  # start client server
        connection = c.server_connect()  # connect to game server
        if not connection:
            c.stop_server()
        menu_player.stop()
        self.game_started = True

    def on_quit(self):
        director.pop()
Beispiel #20
0
explosion_images_image = resource.image("explosion.png")
explosion_images = pyglet.image.ImageGrid(explosion_images_image, 2, 8)
explosion_images = explosion_images.get_texture_sequence()
for explosion_image in explosion_images:
    center_anchor(explosion_image)
explosion_animation = pyglet.image.Animation.from_image_sequence(
    explosion_images, EXPLOSION_ANIMATION_PERIOD, loop=False
)

pointer_image = resource.image("pointer.png")
pointer_image.anchor_x = pointer_image.width // 2
pointer_image.anchor_y = pointer_image.height // 2
pointer_image_flip = resource.image("pointer.png", flip_x=True)

explosion_sound = resource.media("explosion.wav", streaming=False)
bullet_sound = resource.media("bullet.wav", streaming=False)

starfield = Starfield(resource.image("starfield.png"))
player = Player(resource.image("ship.png"), wrapping_batch)
win.push_handlers(player)

# --------------------------------------------------------------------------
# Global game state vars
# --------------------------------------------------------------------------

overlay = None
in_game = False
paused = False
score = 0
ACCEL = 10
DECEL = 0.1
MAX_SPEED = 192
BULLET_SPEED = 288
BULLET_TIMEOUT = 10
DAMAGE = 5
SCREEN_W = 640
SCREEN_H = 480
FPS = 60.

PLAYER1_WIN_TEXT = 'Player-1 has won the battle!'
PLAYER2_WIN_TEXT = 'Player-2 has won the battle!'

graphics_batch = Batch()
bullets = []
snd_bullet = resource.media('zap1.wav', streaming=False)
snd_hit = resource.media('switch3.wav', streaming=False)

def load_pic(filename):
	pic = resource.image(filename)
	pic.anchor_x, pic.anchor_y = pic.width/2, pic.height/2
	return pic
options = {
'pause': key.P,
'back': key.Q,

'p1_left': key.A,
'p1_up': key.W,
'p1_right': key.D,
'p1_down': key.S,
'p1_fire': key.SPACE,
Beispiel #22
0
    def __init__(self):
        return
        self.click = resource.media("click.wav", streaming=False)
        self.your_focus = resource.media("your_focus.wav", streaming=False)
        self.opponent_focus = resource.media("opponent_focus.wav",
                                             streaming=False)
        self.end_turn = resource.media("end_turn.wav", streaming=False)
        self.start_combat = resource.media("combat.wav", streaming=False)
        self.gamestart = resource.media("gamestart.wav", streaming=False)
        self.gameover = resource.media("gameover.wav", streaming=False)
        self.mana = resource.media("mana.wav", streaming=False)
        self.manaspent = resource.media("manaspent.wav", streaming=False)
        self.tap = resource.media("tap.wav", streaming=False)
        #self.clink = resource.media("ding.wav", streaming=False)
        #self.enter_sound = resource.media("card_entering_play.wav", streaming=False)
        #self.leave_sound = resource.media("card_leaving_play.wav", streaming=False)
        #self.play_ability = resource.media("play_ability.wav", streaming=False)
        #self.untap = resource.media("untap.wav", streaming=False)
        #self.lifeloss = resource.media("lifeloss.wav", streaming=False)

        self.player = media.Player()
        self.player.queue(resource.media("background.ogg", streaming=True))
        self.player.eos_action = self.player.EOS_LOOP
        self.connections = [
            (self.gamestart, GameEvent.GameStartEvent()),
            (self.gameover, GameEvent.GameOverEvent()),
            (self.your_focus, GUIEvent.MyPriority()),
            (self.opponent_focus, GUIEvent.OpponentPriority()),
            (self.end_turn, GameEvent.NewTurnEvent()),
            (self.start_combat, GameEvent.DeclareAttackersEvent()),
            (self.tap, GameEvent.CardTapped()),
            #(self.tap, GameEvent.CardUntapped()),
            #(self.lifeloss, GameEvent.LifeLostEvent()),
            #(self.mana, GameEvent.ManaAdded()),
            (self.manaspent, GameEvent.ManaSpent()),
            #(self.clink, GUIEvent.FocusCard(), sender=dispatcher.Anonymous, priority=dispatcher.UI_PRIORITY)),
            #(self_ability, GameEvent.AbilityAnnounced()),
            #(self.enter_sound, GameEvent.CardEnteredZone()),
            #(self.leave_sound, GameEvent.CardLeftZone()),
        ]
Beispiel #23
0
import pyglet

pyglet.options['audio'] = ('directsound', 'silent')

import pyglet.resource as res
import pyglet.media as md

res.path = ["res", "res/sound"]
res.reindex()

brick = res.image("bricks3.png")
# brick = res.image("brick-wall.png")
tree = res.image("beech.png")
pinetree = res.image("pine-tree2.png")
box = res.image("wooden-crate3.png")
player = res.image("gecko4.png")
player_down = res.image("gecko4.png", rotate=180)
player_left = res.image("gecko4.png", rotate=270)
player_right = res.image("gecko4.png", rotate=90)
target = res.image("boxtarget_2.png")

backmusic = res.media("backmusic.mp3", streaming=False)
Beispiel #24
0
 def on_eos(self):
     """Ensure that the sound queue is looped."""
     super(Music, self).on_eos()
     self.queue(media(self.songs.next()))
Beispiel #25
0
 def loadCurrentSong(self):
     self.songText = self.allsongs[self.pos]
     return resource.media("%s/%s" % (self.directory, self.songText))
Beispiel #26
0
 def __init__(self, sound):
     self.sound = media(sound, streaming=False)
Beispiel #27
0
#!/bin/python

from pyglet.resource import media
from pyglet.media import Player

player_fx_interact = Player()
player_fx_walk = Player()
player_music = Player()
player_ambience = Player()
player_fx_interact.volume = 0.8
player_fx_walk.volume = 0.3
player_music.volume = 0.1
player_ambience.volume = 0.8
player_ambience.pitch = 0.6
    
effects = {'player_respawn': media('assets/music/opengameart-org/magic-missile.wav', streaming=False),
           'player_interact_block_dirt': media('assets/music/freesound-org/crunch1.wav', streaming=False),
           'player_jump': media('assets/music/freesound-org/jump2.wav', streaming=False),
           'player_walk': media('assets/music/opengameart-org/stepdirt_1.wav', streaming=False)
           }

songs = {'nice1': media('assets/music/soundimage-org/monkey-island-band_looping.wav', streaming=False)
         }


ambience = {'wind': [media('assets/music/opengameart-org/wind0.wav', streaming=False),            
                     media('assets/music/opengameart-org/wind1.wav', streaming=False),
                     media('assets/music/opengameart-org/wind2.wav', streaming=False)]
            }

Beispiel #28
0
def play(name):

    med = media(name)
    med.play()
    sleep(med.duration - 0.3)
    return med
Beispiel #29
0
 def loadCurrentSong(self):
     self.songText = self.allsongs[self.pos]
     return resource.media("%s/%s" %(self.directory, self.songText)) 
Beispiel #30
0
def init_globals():

    global keys
    keys = [
        "GRAVE", "_1", "_2", "_3", "_4", "_5", "_6", "_7", "_8", "_9", "_0",
        "MINUS", "EQUAL", "BACKSPACE", "TAB", "Q", "W", "E", "R", "T", "Y",
        "U", "I", "O", "P", "BRACKETLEFT", "BRACKETRIGHT", "BACKSLASH",
        "CAPSLOCK", "A", "S", "D", "F", "G", "H", "J", "K", "L", "SEMICOLON",
        "APOSTROPHE", "ENTER", "LSHIFT", "Z", "X", "C", "V", "B", "N", "M",
        "COMMA", "PERIOD", "SLASH", "RSHIFT"
    ]

    with open("assets/keyboard.json") as f:
        data = json.loads(f.read())

    global key_rects
    key_rects = {
        keys[i]: data["frames"][str(i)]["frame"]
        for i in range(len(keys))
    }
    for key in keys:
        key_rects[key]["y"] = 320 - key_rects[key]["y"] - key_rects[key]["h"]

    global balls
    balls = []

    global trapped_balls
    trapped_balls = []

    global dead_balls
    dead_balls = []

    global ctrl_rect
    ctrl_rect = data["frames"][str(len(data["frames"]) - 1)]["frame"]
    ctrl_rect["y"] = 320 - ctrl_rect["y"] - ctrl_rect["h"]

    global level_idx
    level_idx = -1

    global level
    level = {"default": ["none"]}

    global keys_pressed
    keys_pressed = {key: False for key in keys}

    global key_sounds
    key_sounds = [
        media("audio/keyboard_%d.wav" % i, streaming=False)
        for i in range(1, 8)
    ]

    global bounce_sounds
    bounce_sounds = [
        media("audio/keyboard_%d.wav" % i, streaming=False)
        for i in range(1, 3)
    ]

    global launch_sounds
    launch_sounds = [
        media("audio/launch.wav", streaming=False),
        media("audio/launch_empty.wav", streaming=False)
    ]

    global background_music_player
    background_music_player = pyglet.media.Player()
    background_music_player.volume = 0.01
    background_music = [
        media("audio/Eva_soundtrack.mp3", streaming=False),
        media("audio/DzGrimX_soundtrack.mp3", streaming=False)
    ]
    background_music_player.queue(background_music)

    global moths
    moths = []
Beispiel #31
0
def play_sound(filename):
    if constants.SOUND and not constants.MULTIPLAYER:
        sound = media(os.path.join('sounds', filename), streaming=False)
        sound.play()
Beispiel #32
0
    def __init__(self):
        return
        self.click = resource.media("click.wav", streaming=False)
        self.your_focus = resource.media("your_focus.wav", streaming=False)
        self.opponent_focus = resource.media("opponent_focus.wav", streaming=False)
        self.end_turn = resource.media("end_turn.wav", streaming=False)
        self.start_combat = resource.media("combat.wav", streaming=False)
        self.gamestart = resource.media("gamestart.wav", streaming=False)
        self.gameover = resource.media("gameover.wav", streaming=False)
        self.mana = resource.media("mana.wav", streaming=False)
        self.manaspent = resource.media("manaspent.wav", streaming=False)
        self.tap = resource.media("tap.wav", streaming=False)
        #self.clink = resource.media("ding.wav", streaming=False)
        #self.enter_sound = resource.media("card_entering_play.wav", streaming=False)
        #self.leave_sound = resource.media("card_leaving_play.wav", streaming=False)
        #self.play_ability = resource.media("play_ability.wav", streaming=False)
        #self.untap = resource.media("untap.wav", streaming=False)
        #self.lifeloss = resource.media("lifeloss.wav", streaming=False)

        self.player = media.Player()
        self.player.queue(resource.media("background.ogg", streaming=True))
        self.player.eos_action = self.player.EOS_LOOP
        self.connections = [(self.gamestart, GameEvent.GameStartEvent()),
                            (self.gameover, GameEvent.GameOverEvent()),
                            (self.your_focus, GUIEvent.MyPriority()),
                            (self.opponent_focus, GUIEvent.OpponentPriority()),
                            (self.end_turn, GameEvent.NewTurnEvent()),
                            (self.start_combat, GameEvent.DeclareAttackersEvent()),
                            (self.tap, GameEvent.CardTapped()),
                            #(self.tap, GameEvent.CardUntapped()),
                            #(self.lifeloss, GameEvent.LifeLostEvent()),
                            #(self.mana, GameEvent.ManaAdded()),
                            (self.manaspent,GameEvent.ManaSpent()),
                            #(self.clink, GUIEvent.FocusCard(), sender=dispatcher.Anonymous, priority=dispatcher.UI_PRIORITY)),
                            #(self_ability, GameEvent.AbilityAnnounced()),
                            #(self.enter_sound, GameEvent.CardEnteredZone()),
                            #(self.leave_sound, GameEvent.CardLeftZone()),
                            ]
Beispiel #33
0
def play_sound(filename):
    if constants.SOUND and not constants.MULTIPLAYER:
        sound = media(os.path.join('sounds', filename), streaming=False)
        sound.play()
Beispiel #34
0
score_label_2 = Label('0',
                      font_size=48,
                      x = 3 * window.width/4,
                      y = window.height,
                      anchor_x = 'center',
                      anchor_y = 'top')

state = 'playing'

pause_label = Label('PAUSED',
                    font_size=36,
                    x = window.width/2,
                    y = window.height/2,
                    anchor_x = 'center', anchor_y = 'center')

bounce_sound = resource.media('sounds/bounce.wav', streaming=False)
goal_sound = resource.media('sounds/goal.wav', streaming=False)

music = resource.media('sounds/ride-the-storm.ogg')
music_player = Player()
music_player.queue(music)
music_player.volume = 0.5
music_player.eos_action = music_player.EOS_LOOP
music_player.play()

@window.event
def on_draw():
    window.clear()
    if state == 'playing' or state == 'scored':
        ball.draw()
        paddle1.draw()
Beispiel #35
0
class Ship(EventDispatcher, Positionable):
    # Y up, -z forward
    GUNS = {
        'port': [
            (Point3(1.17, 1.44, 1.47), Vector3(15, 0.2, 0)),
            (Point3(1.17, 1.44, 0), Vector3(15, 0.2, 0)),
        ],
        'starboard': [
            (Point3(-1.17, 1.44, 1.47), Vector3(-15, 0.2, 0)),
            (Point3(-1.17, 1.44, 0), Vector3(-15, 0.2, 0)),
        ],
    }

    SHAPES = [
        Sphere(Point3(0, 1, z), 1.3)
        for z in xrange(-3, 4)
    ]

    WIND = Vector3(1, 0, 0)

    MODELS = mast_models

    SINKING_SOUND = media('bubble1.mp3', streaming=False)
    CANNON_SOUND = media('cannon2.mp3', streaming=False)

    faction = 1

    def __init__(self, pos=Point3(0, 0, 0), angle=0, max_health=3):
        super(Ship, self).__init__(pos)
        self.model = GroupNode([
            ModelNode(hull_model),
            ModelNode(self.MODELS[0], pos=Point3(0, 1.18, 2.67)),
            ModelNode(self.MODELS[3], pos=Point3(0, 1.08, 0.61)),
            ModelNode(self.MODELS[6], pos=Point3(0, 1.18, -1.2)),
        ])
        self.emitters = [WakeEmitter(self)]
        self.body = Body(self, self.SHAPES)

        self.angle = angle
        self.helm = InterpolatingController(0)
        self.sail = InterpolatingController(2)  # amount of sail we have up
        self.roll = 0.0
        self.t = 0
        self.last_broadside = 'port'
        self.alive = True

        self.health = self.max_health = max_health

    def get_targets(self, lookahead=10, range=30):
        """Get a dictionary of potential targets on either side.

        We look for targets that are within a distance of range units and up to
        lookahead units ahead or astern of us.

        """
        if not self.world:
            return []
        targets = {
            'port': [],
            'starboard': []
        }

        m = self.get_matrix()
        forward = m * Vector3(0, 0, -1)
        port = m * Vector3(1, 0, 0)
        range2 = range * range

        for o in self.world.objects:
            if isinstance(o, Ship) and o is not self:
                rel = o.pos - self.pos
                if abs(rel.dot(forward)) < lookahead and rel.magnitude_squared() < range2:
                    side = 'port' if rel.dot(port) > 0 else 'starboard'
                    targets[side].append(o)
        return targets

    def fire(self):
        """Fire the cannons!

        This is an automagical firing system that will work out whether either
        side has a promising target. In the case that they both do, alternate
        sides.

        """
        if not self.alive:
            return
        targets = self.get_targets()

        if bool(targets['port']) ^ bool(targets['starboard']):
            side = 'port' if targets['port'] else 'starboard'
#            print len(targets[side]), "targets to", side + " cap'n"
        else:
            side = 'port' if self.last_broadside == 'starboard' else 'starboard'
#            print "Haven't fired to", side, "for a while"

        # Fire one gun now, schedule the rest to fire over the next 0.5s
        guns = range(len(self.GUNS[side]))
        random.shuffle(guns)
        num = guns.pop()
        wpos = self.fire_gun(side, num)

        for num in guns:
            self.world.clock.schedule_once(
                lambda dt, num: self.fire_gun(side, num),
                random.uniform(0.0, 0.5),
                num
            )
        self.last_broadside = side
        self.world.spawn(MuzzleFlash(wpos))

    def fire_gun(self, side, num):
        pos, v = self.GUNS[side][num]
        m = self.get_matrix()
        v += Vector3(
            0.0,
            random.normalvariate(0.0, 0.2),
            random.normalvariate(0.0, 0.2)
        )
        wvec = m * v

        up = Vector3(0, 1, 0)
        wvec -= up * 0.5 * wvec.dot(up)
        wpos = m * pos
        p = self.CANNON_SOUND.play()
        p.position = wpos
        self.world.spawn(Cannonball(wpos, wvec, owner=self))
        spawn_smoke(wpos, wvec)
        return wpos

    def update_masts(self, sail):
        hull, foremast, mainmast, mizzenmast = self.model.nodes
        if sail < 0.7:
            foremast.model_instance = self.MODELS[0]
        elif sail < 2.3:
            foremast.model_instance = self.MODELS[1]
        else:
            foremast.model_instance = self.MODELS[2]

        if sail < 0.5:
            mainmast.model_instance = self.MODELS[3]
        elif sail < 1.5:
            mainmast.model_instance = self.MODELS[4]
        else:
            mainmast.model_instance = self.MODELS[5]

        if sail < 0.8:
            mizzenmast.model_instance = self.MODELS[6]
        elif sail < 2.0:
            mizzenmast.model_instance = self.MODELS[7]
        else:
            mizzenmast.model_instance = self.MODELS[8]

    def damage(self, amount=1):
        """Apply damage to this ship.

        Return True if the ship was killed as a result.

        """
        if not self.alive:
            return False
        self.health -= amount
        if self.health <= 0:
            self.kill()
            return True
        return False

    def kill(self):
        if self.alive:
            p = self.SINKING_SOUND.play()
            p.position = self.pos
            self.alive = False
            self.helm.set_immediate(0)
            self.sail.set_immediate(0)
            self.world.clock.schedule_once(
                lambda dt: self.world.destroy(self), 7.0)
            self.dispatch_event('on_death')

    def get_quaternion(self):
        """Get the Quarternion of the ship's current heading."""
        return Quaternion.new_rotate_axis(self.angle, Vector3(0, 1, 0))

    def get_forward(self):
        """Get the forward unit vector."""
        return self.get_quaternion() * Vector3(0, 0, 1)

    def get_starboard(self):
        """Get the starboard unit vector."""
        return self.get_quaternion() * Vector3(-1.0, 0, 0)

    def get_wind_angle(self):
        return map_angle(self.world.wind_angle - self.angle)

    def update(self, dt):
        self.t += dt

        if self.alive:
            self.helm.update(dt)
            self.sail.update(dt)

            self.update_masts(self.sail.current)

        # damp roll
        self.roll *= pow(0.6, dt)

        # Compute some bobbing motion
        rollmoment = 0.05 * sin(self.t)
        pitch = 0.02 * sin(0.31 * self.t)

        # Compute the forward vector from the curent heading
        q = self.get_quaternion()
        forward = q * Vector3(0, 0, 1)
        angular_velocity = self.helm.current * min(forward.dot(self.vel), 2) * 0.03
        angle_to_wind = map_angle(self.world.wind_angle - self.angle)
        sail_power = get_sail_power(angle_to_wind)
        heeling_moment = get_heeling_moment(angle_to_wind)

        rollmoment += angular_velocity * 0.5  # lean over from centrifugal force of turn
        rollmoment -= heeling_moment * 0.05 * self.sail.current  # heel from wind force

        # Update ship angle and position
        self.angle = map_angle(self.angle + angular_velocity * dt)
        accel = forward * self.sail.current * sail_power * 0.5 * dt
        self.vel += accel
        self.vel *= pow(0.7, dt)  # Drag
        self.pos += self.vel * dt

        # Float
        if self.alive:
            self.pos += Vector3(0, -0.5, 0) * self.pos.y * dt
        else:
            self.pos += Vector3(0, -1, 0) * dt

        self.roll += rollmoment * dt

        # Apply ship angle and position to model
        self.rot = (
            q *
            Quaternion.new_rotate_axis(pitch, Vector3(1, 0, 0)) *
            Quaternion.new_rotate_axis(self.roll, Vector3(0, 0, 1))
        )
        rotangle, (rotx, roty, rotz) = self.rot.get_angle_axis()
        self.model.rotation = (degrees(rotangle), rotx, roty, rotz)
        self.model.pos = self.pos

        # Adjust sail angle to wind direction
        if self.alive:
            sail_angle = get_sail_setting(angle_to_wind)
            for sail in self.model.nodes[1:]:
                sail.rotation = degrees(sail_angle), 0, 1, 0