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 22:59:39 (GMT)
committer Walter Bender <walter@walter-laptop.(none)>2009-12-08 22:59:39 (GMT)
commitd801ab32bcb35680fad9c59c56d80a8dc4edc0c5 (patch)
tree57362b9d0e7bf77ab847bcac3c105c4d23f69583
parentd6df00f14c7adf27afb5906653fc3f3049ca98eb (diff)
better sequence management; 0.84 support
-rw-r--r--ErikosActivity.py13
-rw-r--r--sprite_factory.py2
-rw-r--r--window.py50
3 files changed, 37 insertions, 28 deletions
diff --git a/ErikosActivity.py b/ErikosActivity.py
index d13e2c1..7d53cff 100644
--- a/ErikosActivity.py
+++ b/ErikosActivity.py
@@ -132,7 +132,6 @@ class ErikosActivity(activity.Activity):
pass
def _play_cb(self, button):
- print "%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
window.play_the_game(self.tw)
return True
@@ -160,3 +159,15 @@ class ProjectToolbar(gtk.Toolbar):
self.insert(self.activity.play, -1)
self.activity.play.show()
+ separator = gtk.SeparatorToolItem()
+ separator.set_draw(True)
+ self.insert(separator, -1)
+ separator.show()
+
+ # Label for showing play status
+ self.activity.level_label = gtk.Label("%s %d" % (_("Level"),1))
+ self.activity.level_label.show()
+ self.activity.level_toolitem = gtk.ToolItem()
+ self.activity.level_toolitem.add(self.activity.level_label)
+ self.insert(self.activity.level_toolitem, -1)
+ self.activity.level_toolitem.show()
diff --git a/sprite_factory.py b/sprite_factory.py
index dc540a4..c37fe5d 100644
--- a/sprite_factory.py
+++ b/sprite_factory.py
@@ -33,7 +33,7 @@ class Sprite:
def __init__(self, tw, name, x, y, w, h, name_label=False):
# create sprite from svg file
self.spr = sprNew(tw, x, y,
- self.load_image(tw.path,name,w,h))
+ self.load_image(tw.path,name,w*tw.scale,h*tw.scale))
if name_label is True:
self.spr.label = name
else:
diff --git a/window.py b/window.py
index 5eb8b7f..7b53c69 100644
--- a/window.py
+++ b/window.py
@@ -75,21 +75,22 @@ def new_window(canvas, path, parent=None):
sw.cm = sw.gc.get_colormap()
sw.msgcolor = sw.cm.alloc_color('black')
sw.sprites = []
- sw.scale = 1
- sw.level = 0
- sw.seq = gen_seq(10)
+ sw.scale = 2
+ sw.level = 1
+ sw.seq = gen_seq(30)
sw.counter = 0
sw.playpushed = False
# Open the buttons
- sw.buttons_off = [Sprite(sw,"Aoff",sw.width/2-W/2,H/2,W/2,H/2),\
- Sprite(sw,"Boff",sw.width/2-W,H,W/2,H/2),\
- Sprite(sw,"Doff",sw.width/2,H,W/2,H/2),\
- Sprite(sw,"Coff",sw.width/2-W/2,H+H/2,W/2,H/2)]
- sw.buttons_on = [Sprite(sw,"Aon",sw.width/2-W/2,H/2,W/2,H/2),\
- Sprite(sw,"Bon",sw.width/2-W,H,W/2,H/2),\
- Sprite(sw,"Don",sw.width/2,H,W/2,H/2),\
- Sprite(sw,"Con",sw.width/2-W/2,H+H/2,W/2,H/2)]
+ d = W/4 # position fudge factor
+ sw.buttons_off = [Sprite(sw,"Aoff",sw.width/2-W/2,H/2-d,W/2,H/2),\
+ Sprite(sw,"Boff",sw.width/2-W-d,H,W/2,H/2),\
+ Sprite(sw,"Doff",sw.width/2+d,H,W/2,H/2),\
+ Sprite(sw,"Coff",sw.width/2-W/2,H+H/2+d,W/2,H/2)]
+ sw.buttons_on = [Sprite(sw,"Aon",sw.width/2-W/2,H/2-d,W/2,H/2),\
+ Sprite(sw,"Bon",sw.width/2-W-d,H,W/2,H/2),\
+ Sprite(sw,"Don",sw.width/2+d,H,W/2,H/2),\
+ Sprite(sw,"Con",sw.width/2-W/2,H+H/2+d,W/2,H/2)]
sw.sounds = ['dog','sheep','cat','bird']
sw.sound_files = []
@@ -123,13 +124,13 @@ def play_the_game(sw):
#
def _stepper(sw,i,j):
if i > 0:
- hide(sw.buttons_on[sw.seq[sw.level][i-1]].spr)
+ hide(sw.buttons_on[sw.seq[i-1]].spr)
if j is True:
- if i < len(sw.seq[sw.level]):
- sw.buttons_on[sw.seq[sw.level][i]].draw_sprite(1500)
- inval(sw.buttons_on[sw.seq[sw.level][i]].spr)
+ if i < sw.level*2:
+ sw.buttons_on[sw.seq[i]].draw_sprite(1500)
+ inval(sw.buttons_on[sw.seq[i]].spr)
gobject.idle_add(__play_sound_cb,
- sw.sound_files[sw.seq[sw.level][i]])
+ sw.sound_files[sw.seq[i]])
sw.timeout_id = gobject.timeout_add(1000,_stepper,sw,i+1,False)
else:
sw.timeout_id = gobject.timeout_add(1000,_all_off,sw)
@@ -185,21 +186,21 @@ def _button_release_cb(win, event, sw):
if sw.playpushed is False:
sw.press = None
return
- if sw.seq[sw.level][sw.counter] == i: # correct reponse
+ if sw.seq[sw.counter] == i: # correct reponse
sw.counter += 1
- if sw.counter == len(sw.seq[sw.level]):
+ if sw.counter == sw.level*2:
gobject.timeout_add(1000, _all_on, sw)
sw.counter = 0
sw.level += 1
gobject.timeout_add(1500, _all_off, sw)
sw.activity.level_label.set_text(
- "%s %d" % (_("Level"),sw.level+1))
- if sw.level < len(sw.seq):
+ "%s %d" % (_("Level"),sw.level))
+ if sw.level*2 < len(sw.seq):
gobject.timeout_add(3000, play_the_game, sw)
else:
sw.playpushed = False
sw.level = 0
- sw.seq = gen_seq(10)
+ sw.seq = gen_seq(30)
else: # incorrect response
_all_gone(sw)
gobject.timeout_add(1000, _all_off, sw)
@@ -252,9 +253,6 @@ def _destroy_cb(win, event, sw):
def gen_seq(n):
seq = []
for i in range(1,n+1):
- lev = []
- for j in range(0,i*2):
- lev.append(int(random.uniform(0,4)))
- print lev
- seq.append(lev)
+ seq.append(int(random.uniform(0,4)))
+ print seq
return seq