Skip to content
This repository was archived by the owner on Apr 17, 2023. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added games/think-green/music/death_error.ogg
Binary file not shown.
Binary file added games/think-green/music/recycling_is_fun.ogg
Binary file not shown.
Binary file added games/think-green/music/tiny_world.ogg
Binary file not shown.
20 changes: 20 additions & 0 deletions games/think-green/think-green.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import sdl2
import sdl2.ext
import sdl2.sdlmixer

import subjunctive

Expand Down Expand Up @@ -118,7 +119,21 @@ class Recycle(subjunctive.entity.Entity):
image = subjunctive.resource.image('images/recycle.png')
pushable = True

def play_music(music_id):
if music_id == 1:
music = subjunctive.resource.music('music/tiny_world.ogg')
if music_id == 2:
music = subjunctive.resource.music('music/recycling_is_fun.ogg')
if music_id == 3:
music = subjunctive.resource.music('music/death_error.ogg')
sdl2.sdlmixer.Mix_PlayMusic(music, -1)

if __name__ == '__main__':
sdl2.SDL_Init(sdl2.SDL_INIT_AUDIO)
sdl2.sdlmixer.Mix_Init(sdl2.sdlmixer.MIX_INIT_OGG)
sdl2.sdlmixer.Mix_OpenAudio(44100, sdl2.sdlmixer.MIX_DEFAULT_FORMAT,
2, 1024)
play_music(1)
ts = TitleScreen()
subjunctive.scheduler.call(ts.show_continue, after='3s')
subjunctive.run(ts, on_select=subjunctive.exit)
Expand All @@ -136,7 +151,12 @@ def move_cursor(direction):
world.combo = 1

try:
play_music(2)
subjunctive.run(world, on_direction=move_cursor)
except DeathError:
world.die()
play_music(3)
subjunctive.run(world, on_select=subjunctive.exit)

sdl2.sdlmixer.Mix_CloseAudio()
sdl2.SDL_Quit(sdl2.SDL_INIT_AUDIO)
14 changes: 14 additions & 0 deletions subjunctive/resource.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
import os.path

import sdl2.ext
import sdl2.sdlmixer

from sdl2.ext.compat import byteify

_paths = [os.path.dirname(__file__)]
default_image = sdl2.ext.load_image(os.path.join(_paths[0],
Expand Down Expand Up @@ -31,6 +34,17 @@ def image(name):
logging.warning("image %r could not be found; using default" % name)
return default_image

def music(name):
for path in _paths:
music = sdl2.sdlmixer.Mix_LoadMUS(byteify(os.path.join(path, name),
"utf-8"))
try:
music.contents
except ValueError:
pass
else:
return music

def file(name):
for path in _paths:
try:
Expand Down