gcompris r3627 - branches/gcomprixogoo/src/watercycle-activity
- From: bcoudoin svn gnome org
- To: svn-commits-list gnome org
- Subject: gcompris r3627 - branches/gcomprixogoo/src/watercycle-activity
- Date: Sun, 23 Nov 2008 20:52:44 +0000 (UTC)
Author: bcoudoin
Date: Sun Nov 23 20:52:44 2008
New Revision: 3627
URL: http://svn.gnome.org/viewvc/gcompris?rev=3627&view=rev
Log:
Completed the new watercycle.
Modified:
branches/gcomprixogoo/src/watercycle-activity/watercycle.py
Modified: branches/gcomprixogoo/src/watercycle-activity/watercycle.py
==============================================================================
--- branches/gcomprixogoo/src/watercycle-activity/watercycle.py (original)
+++ branches/gcomprixogoo/src/watercycle-activity/watercycle.py Sun Nov 23 20:52:44 2008
@@ -43,14 +43,11 @@
# The basic duration factor for object animations
# Higher is longer animation (slower)
self.timerinc = 20
+ self.step_time = 100
# Need to manage the timers to quit properly
self.waterlevel_timer = 0
- gcompris.bar_set(0)
- gcompris.bar_location(gcompris.BOARD_WIDTH - 140, -1, 0.7)
- gcompris.bar_set_level(self.gcomprisBoard)
-
gcompris.sound.play_ogg("sounds/Harbor1.wav", "sounds/Harbor3.wav")
# Create our rootitem. We put each canvas item in it so at the end we
@@ -76,7 +73,7 @@
pointer_events = goocanvas.EVENTS_NONE,
visibility = goocanvas.ITEM_INVISIBLE
)
- self.riverfull = 0
+ self.riverfull = False
# The dirty water
self.dirtywater = goocanvas.Svg(
@@ -137,7 +134,9 @@
)
self.clouditem.props.visibility = goocanvas.ITEM_INVISIBLE
self.clouditem.connect("animation-finished", self.cloud_arrived)
- self.cloud_on = 0
+ self.cloud_on = False
+ self.cloud_is_arrived = False
+ self.clouditem_bounds = self.clouditem.get_bounds()
# The vapor
self.vaporitem = goocanvas.Svg(
@@ -269,9 +268,13 @@
1,
True,
self.timerinc*trip_x,
- 40,
+ self.step_time,
goocanvas.ANIMATE_FREEZE)
+ gcompris.bar_set(0)
+ gcompris.bar_location(5, -1, 0.6)
+ gcompris.bar_set_level(self.gcomprisBoard)
+
def end(self):
# Remove all the timer first
@@ -320,6 +323,9 @@
# In this case, de activate the shower
self.showerbutton_update(False)
+ if self.waterlevel == self.waterlevel_max:
+ self.cloud_reset()
+
self.waterlevel_timer = gobject.timeout_add(1000, self.update_waterlevel)
def boat_arrived(self, item, status):
@@ -347,30 +353,41 @@
1,
True,
int(self.timerinc*abs(trip_y)),
- 40,
+ self.step_time,
goocanvas.ANIMATE_FREEZE)
return False
def sun_up_arrived(self, item, status):
# Start the vapor
self.init_vapor()
- # Remove the snow
- self.snowitem.props.visibility = goocanvas.ITEM_INVISIBLE
def sun_down_arrived(self, item, status):
gcompris.utils.item_focus_init(self.sunitem, None)
# Stop the sun
self.sun_on = 0
+ def cloud_reset(self):
+ if (not self.cloud_is_arrived or not self.riverfull):
+ return
+
+ self.clouditem.translate(self.clouditem_bounds.x1 - self.clouditem.get_bounds().x1,
+ 0)
+ self.clouditem.props.visibility = goocanvas.ITEM_INVISIBLE
+ self.rainitem.props.visibility = goocanvas.ITEM_INVISIBLE
+ self.snowitem.props.visibility = goocanvas.ITEM_INVISIBLE
+ self.cloud_is_arrived = False
+ self.cloud_on = False
+
def cloud_arrived(self, item, status):
self.sun_down()
self.clouditem.connect("button_press_event", self.cloud_item_event)
gcompris.utils.item_focus_init(self.clouditem, None)
+ self.cloud_is_arrived = True
def move_cloud(self):
if (self.cloud_on):
return
- self.cloud_on = 1
+ self.cloud_on = True
self.clouditem.props.visibility = goocanvas.ITEM_VISIBLE
trip_x = 270
self.clouditem.animate(trip_x,
@@ -379,7 +396,7 @@
1,
True,
self.timerinc*trip_x,
- 40,
+ self.step_time,
goocanvas.ANIMATE_FREEZE)
def vapor_arrived(self, item, state):
@@ -398,7 +415,7 @@
1,
True,
self.timerinc*trip_y,
- 40,
+ self.step_time,
goocanvas.ANIMATE_RESET)
@@ -425,7 +442,7 @@
1,
True,
int(self.timerinc*abs(trip_y)),
- 40,
+ self.step_time,
goocanvas.ANIMATE_FREEZE)
self.sun_on = 1
@@ -433,35 +450,26 @@
return False
def cloud_item_event(self, widget, target, event=None):
- if event.type == gtk.gdk.BUTTON_PRESS:
- if event.button == 1:
- gcompris.sound.play_ogg("sounds/Water5.wav")
- self.rainitem.props.visibility = goocanvas.ITEM_VISIBLE
- self.snowitem.props.visibility = goocanvas.ITEM_VISIBLE
- self.riveritem.props.visibility = goocanvas.ITEM_VISIBLE
- self.riverfull = 1
- return True
- return False
+ gcompris.sound.play_ogg("sounds/Water5.wav")
+ self.rainitem.props.visibility = goocanvas.ITEM_VISIBLE
+ self.snowitem.props.visibility = goocanvas.ITEM_VISIBLE
+ self.riveritem.props.visibility = goocanvas.ITEM_VISIBLE
+ self.riverfull = True
+ return True
def waterpump_item_event(self, widget, target, event=None):
- if event.type == gtk.gdk.BUTTON_PRESS:
- if event.button == 1:
- if self.riverfull:
- gcompris.sound.play_ogg("sounds/bubble.wav")
- self.cleanwateritem.props.visibility = goocanvas.ITEM_VISIBLE
- self.waterpump_on = 1
- return True
- return False
+ if self.riverfull:
+ gcompris.sound.play_ogg("sounds/bubble.wav")
+ self.cleanwateritem.props.visibility = goocanvas.ITEM_VISIBLE
+ self.waterpump_on = 1
+ return True
def watercleaning_item_event(self, widget, target, event=None):
- if event.type == gtk.gdk.BUTTON_PRESS:
- if event.button == 1:
- if self.riverfull:
- gcompris.sound.play_ogg("sounds/bubble.wav")
- self.watercleaning_on = 1
- self.dirtywater.props.visibility = goocanvas.ITEM_VISIBLE
- return True
- return False
+ if self.riverfull:
+ gcompris.sound.play_ogg("sounds/bubble.wav")
+ self.watercleaning_on = 1
+ self.dirtywater.props.visibility = goocanvas.ITEM_VISIBLE
+ return True
# If Tux is in the shower, we must display the water if needed
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]