Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWalter Bender <walter@walter-laptop.(none)>2009-12-08 12:28:58 (GMT)
committer Walter Bender <walter@walter-laptop.(none)>2009-12-08 12:28:58 (GMT)
commit17c7ca07276895ea3d19a813a1ac82a414abeeef (patch)
tree77c217553b419ea70c1a5a80572602d346da46c7
parent33734906724a0f9bf8c61b4e602a4cacc66951bb (diff)
preview mostly working
-rw-r--r--ErikosActivity.py3
-rw-r--r--sprite_factory.py2
-rw-r--r--window.py69
3 files changed, 35 insertions, 39 deletions
diff --git a/ErikosActivity.py b/ErikosActivity.py
index 213cccb..34651c5 100644
--- a/ErikosActivity.py
+++ b/ErikosActivity.py
@@ -120,7 +120,8 @@ class ErikosActivity(activity.Activity):
pass
def _play_cb(self, button):
- window._play_the_game(self.tw)
+ print "%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
+ window.play_the_game(self.tw)
return True
"""
diff --git a/sprite_factory.py b/sprite_factory.py
index dd19ebc..dc540a4 100644
--- a/sprite_factory.py
+++ b/sprite_factory.py
@@ -39,7 +39,7 @@ class Sprite:
else:
self.spr.label = ""
- def draw_slider(self, layer=1000):
+ def draw_sprite(self, layer=1000):
setlayer(self.spr, layer)
draw(self.spr)
diff --git a/window.py b/window.py
index 787f0e9..8080502 100644
--- a/window.py
+++ b/window.py
@@ -109,23 +109,29 @@ def new_window(canvas, path, parent=None):
#
# Play
#
-def _play_the_game(tw):
+def play_the_game(tw):
+ print "############################### " + str(tw.level)
_all_on(tw)
for i in tw.buttons_on:
hide(i.spr)
- for i in tw.seq[tw.level]:
- draw(tw.buttons_on[i].spr)
- inval(tw.buttons_on[i].spr)
- # need to learn how timeouts really work...
- print tw.sound_files[i]
- os.system('csound ' + tw.sound_files[i] + \
- '/temp.csd >/dev/null 2>/dev/null')
- sleep(1)
- gobject.timeout_add(1000,hide,tw.buttons_on[i].spr)
- # hide(tw.buttons_on[i].spr)
+ _stepper(tw,0)
tw.counter = 0
#
+# Display next sound/graphic in sequence
+#
+def _stepper(tw,i):
+ if i > 0:
+ hide(tw.buttons_on[tw.seq[tw.level][i-1]].spr)
+ if i < len(tw.seq[tw.level]):
+ tw.buttons_on[tw.seq[tw.level][i]].draw_sprite(1500)
+ inval(tw.buttons_on[tw.seq[tw.level][i]].spr)
+ gobject.idle_add(__play_sound_cb, tw.sound_files[tw.seq[tw.level][i]])
+ tw.timeout_id = gobject.timeout_add(1000,_stepper,tw,i+1)
+ else:
+ tw.timeout_id = gobject.timeout_add(1000,_all_off,tw)
+
+#
# Button press
#
def _button_press_cb(win, event, tw):
@@ -155,57 +161,46 @@ def _mouse_move_cb(win, event, tw):
#
# Button release
#
+def __play_sound_cb(sound):
+# os.system('csound ' + sound + '/temp.csd >/dev/null 2>/dev/null')
+ os.system('csound ' + sound)
+
def _button_release_cb(win, event, tw):
if tw.press == None:
return True
for i in range (0,4):
if tw.press == tw.buttons_off[i].spr:
- draw(tw.buttons_on[i].spr)
+ tw.buttons_on[i].draw_sprite(1500)
inval(tw.buttons_on[i].spr)
- # gobject.timeout_add(1000,hide,tw.buttons_on[i].spr)
- print tw.sound_files[i]
- os.system('csound ' + tw.sound_files[i])
- # os.system('csound ' + tw.sound_files[i] + \
- # '/temp.csd >/dev/null 2>/dev/null')
- sleep(1)
- hide(tw.buttons_on[i].spr)
+ gobject.idle_add(__play_sound_cb, tw.sound_files[i])
+ gobject.timeout_add(500,hide,tw.buttons_on[i].spr)
+ print "level %d; counter %d; i is %d" % (tw.level,tw.counter,i)
if tw.seq[tw.level][tw.counter] == i: # correct reponse
- """
- print str(tw.counter) + ": made a match between " + \
- str(i) + " and " + str(tw.seq[tw.counter])
- """
tw.counter += 1
if tw.counter == len(tw.seq[tw.level]):
+ print "solved level %d" % (tw.level)
_all_on(tw)
tw.counter = 0
tw.level += 1
if tw.level == len(tw.seq):
tw.level = 0
- sleep(1)
- _all_off(tw)
+ gobject.timeout_add(500, _all_off, tw)
else: # incorrect response
- """
- print "mismatch: " + str(i) + " is not " + \
- str(tw.seq[tw.counter])
- """
-
- """
_all_gone(tw)
- sleep(1)
- _all_off(tw)
- """
+ gobject.timeout_add(1000, _all_off, tw)
tw.counter = 0
+
tw.press = None
def _all_on(tw):
for i in tw.buttons_off:
- i.draw_slider()
+ i.draw_sprite(1000)
for i in tw.buttons_on:
- i.draw_slider()
+ i.draw_sprite(1500)
def _all_off(tw):
for i in tw.buttons_off:
- i.draw_slider()
+ i.draw_sprite(1000)
for i in tw.buttons_on:
hide(i.spr)