[gcompris: 38/111] Land Safe activity



commit e466c8e54edbf908c94b07ee9e9e84eb2df3740d
Author: serah <serah4291 gmail com>
Date:   Fri Jun 22 23:14:41 2012 +0530

    Land Safe activity

 src/Land_Safe-activity/.gitignore                  |    1 +
 src/Land_Safe-activity/Land_Safe.py                |  359 +++++++++++++++
 src/Land_Safe-activity/Land_Safe.svg               |  472 ++++++++++++++++++++
 src/Land_Safe-activity/Land_Safe.xml.in            |   24 +
 src/Land_Safe-activity/Makefile.am                 |   35 ++
 src/Land_Safe-activity/gcompris                    |    1 +
 src/Land_Safe-activity/init_path.sh                |    8 +
 .../resources/Land_Safe/Makefile.am                |   14 +
 .../resources/Land_Safe/background1.png            |  Bin 0 -> 65347 bytes
 .../resources/Land_Safe/background2.png            |  Bin 0 -> 179961 bytes
 .../resources/Land_Safe/crash.png                  |  Bin 0 -> 26226 bytes
 .../resources/Land_Safe/flame1.png                 |  Bin 0 -> 1662 bytes
 .../resources/Land_Safe/flame2.png                 |  Bin 0 -> 2402 bytes
 .../resources/Land_Safe/flame3.png                 |  Bin 0 -> 2808 bytes
 .../resources/Land_Safe/rocket.png                 |  Bin 0 -> 6118 bytes
 src/Land_Safe-activity/resources/Makefile.am       |    2 +
 16 files changed, 916 insertions(+), 0 deletions(-)
---
diff --git a/src/Land_Safe-activity/.gitignore b/src/Land_Safe-activity/.gitignore
new file mode 100644
index 0000000..e0a9e50
--- /dev/null
+++ b/src/Land_Safe-activity/.gitignore
@@ -0,0 +1 @@
+Land_Safe.xml
diff --git a/src/Land_Safe-activity/Land_Safe.py b/src/Land_Safe-activity/Land_Safe.py
new file mode 100644
index 0000000..f44c45b
--- /dev/null
+++ b/src/Land_Safe-activity/Land_Safe.py
@@ -0,0 +1,359 @@
+#  gcompris - Land_Safe.py
+#
+# Copyright (C) 2003, 2008 Bruno Coudoin and Matilda Bernard
+#
+#   This program is free software; you can redistribute it and/or modify
+#   it under the terms of the GNU General Public License as published by
+#   the Free Software Foundation; either version 3 of the License, or
+#   (at your option) any later version.
+#
+#   This program is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#   GNU General Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License
+#   along with this program; if not, see <http://www.gnu.org/licenses/>.
+#
+# Land_Safe activity.
+import gtk
+import gtk.gdk
+import gcompris
+import gcompris.utils
+import gcompris.skin
+import gcompris.bonus
+import goocanvas
+import pango
+import gobject
+import random
+
+from gcompris import gcompris_gettext as _
+
+class Gcompris_Land_Safe:
+  """Empty gcompris python class"""
+
+
+  def __init__(self, gcomprisBoard):
+    # Save the gcomprisBoard, it defines everything we need
+    # to know from the core
+    self.gcomprisBoard = gcomprisBoard
+    self.gcomprisBoard.level = 1
+    self.gcomprisBoard.maxlevel = 2
+
+    # Needed to get key_press
+    gcomprisBoard.disable_im_context = True
+
+  def start(self):
+    gcompris.bar_set_level(self.gcomprisBoard)
+
+    # Set the buttons we want in the bar
+    gcompris.bar_set(gcompris.BAR_LEVEL)
+
+    # Create our rootitem. We put each canvas item in it so at the end we
+    # only have to kill it. The canvas deletes all the items it contains
+    # automaticaly.
+    self.rootitem = goocanvas.Group(parent =
+                                    self.gcomprisBoard.canvas.get_root_item())
+
+    # Set a background image
+    level = str(self.gcomprisBoard.level)
+    image = 'Land_Safe/background'+level+'.png'
+    gcompris.set_background(self.gcomprisBoard.canvas.get_root_item(),
+                            image)
+
+    # Load spaceship
+    self.space_ship = Spaceship(self,
+                                self.rootitem,
+                                self.gcomprisBoard.level)
+
+  def end(self):
+    # Remove the root item removes all the others inside it
+    self.rootitem.remove()
+
+  def ok(self):
+    pass
+
+  def repeat(self):
+    pass
+
+  #mandatory but unused yet
+  def config_stop(self):
+    pass
+
+  # Configuration function.
+  def config_start(self, profile):
+    print("intro_gravity config_start.")
+
+  def key_press(self, keyval, commit_str, preedit_str):
+    self.space_ship.handle_key(keyval)
+
+  def pause(self, pause):
+    self.board_paused = pause
+    if pause == 0:
+      self.end()
+      self.start()
+
+  def set_level(self, level):
+    self.gcomprisBoard.level = level
+    gcompris.bar_set_level(self.gcomprisBoard)
+    self.end()
+    self.start()
+
+  def crash(self):
+    gcompris.bonus.display(gcompris.bonus.LOOSE, gcompris.bonus.TUX)
+
+  def win(self):
+    self.next_level()
+    gcompris.bonus.display(gcompris.bonus.WIN, gcompris.bonus.TUX)
+
+  def next_level(self):
+    if self.gcomprisBoard.level < self.gcomprisBoard.maxlevel:
+      self.gcomprisBoard.level +=1
+    else:
+      self.gcomprisBoard.level = 1
+
+class Spaceship:
+  """Class for the spaceship"""
+
+
+  def __init__(self, game_instance, rootitem, level):
+    self.game = game_instance
+    self.rootitem = rootitem
+    self.level = level
+    self.subrootitem = goocanvas.Group(parent = rootitem)
+
+    x = gcompris.BOARD_WIDTH/2
+    y = 10
+
+    #Load flames
+    self.flame(x + 15, y)
+    self.flame_1.props.visibility = goocanvas.ITEM_INVISIBLE
+    self.flame_2.props.visibility = goocanvas.ITEM_INVISIBLE
+    self.flame_3.props.visibility = goocanvas.ITEM_INVISIBLE
+
+    pixbuf = gcompris.utils.load_pixmap("Land_Safe/rocket.png")
+    self.spaceship_image = goocanvas.Image(
+      parent = rootitem,
+      pixbuf = pixbuf,
+      x = x,
+      y = y
+      )
+
+    self.y = 0.005
+    self.x = 0
+    self.key_vertical = 4
+
+    # Load fuel, altitude and landing area
+    self.info = Display(self, rootitem)
+
+    # incase of landing return false
+    gobject.timeout_add(30, self.spaceship_movement)
+
+  def handle_key(self, key):
+    if key == gtk.keysyms.Left:
+      self.x -= 0.05
+
+    elif key == gtk.keysyms.Right:
+      self.x += 0.05
+
+    elif key == gtk.keysyms.Up:
+      if self.key_vertical > 1:
+        self.key_vertical -= 1
+
+    elif key == gtk.keysyms.Down:
+      if self.key_vertical < 4:
+        self.key_vertical += 1
+
+  def spaceship_movement(self):
+    if self.info.increase_vel():
+      self.key_vertical = 4
+
+    # handle increase in velocity and flame
+    if self.key_vertical == 1:
+      self.flame_3.props.visibility = goocanvas.ITEM_VISIBLE
+      self.y -= 0.005
+
+    elif self.key_vertical == 2:
+      self.flame_3.props.visibility = goocanvas.ITEM_INVISIBLE
+      self.flame_2.props.visibility = goocanvas.ITEM_VISIBLE
+      self.y -= 0.002
+
+    elif self.key_vertical == 3:
+      self.flame_2.props.visibility = goocanvas.ITEM_INVISIBLE
+      self.flame_3.props.visibility = goocanvas.ITEM_INVISIBLE
+      self.flame_1.props.visibility = goocanvas.ITEM_VISIBLE
+      self.y +=0.002 * self.level
+
+    elif self.key_vertical == 4:
+      self.flame_1.props.visibility = goocanvas.ITEM_INVISIBLE
+      self.flame_2.props.visibility = goocanvas.ITEM_INVISIBLE
+      self.flame_3.props.visibility = goocanvas.ITEM_INVISIBLE
+      self.y += 0.005 * self.level
+
+    # move spaceship and flame
+    position = self.spaceship_image.get_bounds().y1
+    if  position < 365:
+      self.spaceship_image.translate(self.x, self.y)
+      self.subrootitem.translate(self.x, self.y)
+      self.info.altitude(position)
+      return True
+
+    else:
+      self.info.altitude(364.000)
+      self.subrootitem.remove()
+      self.info.stop_fuel()
+      self.check_landing()
+
+  def check_landing(self):
+    x = self.spaceship_image.get_bounds().x1
+    land_x = self.info.get_area()
+    if land_x < x < land_x + 100 and self.y < 0.5:
+      self.game.win()
+    else:
+      self.crash_image()
+
+  def crash_image(self):
+    x = self.spaceship_image.get_bounds().x1
+    self.spaceship_image.remove()
+    pixbuf = gcompris.utils.load_pixmap("Land_Safe/crash.png")
+    explosion = goocanvas.Image(
+      parent = self.rootitem,
+      pixbuf = pixbuf,
+      x = x - 20,
+      y = 340
+      )
+
+    self.game.crash()
+
+  def flame(self,x,y):
+    pixbuf = gcompris.utils.load_pixmap("Land_Safe/flame1.png")
+    self.flame_1 = goocanvas.Image(
+      parent = self.subrootitem,
+      pixbuf = pixbuf,
+      x = x,
+      y = y + 68
+      )
+
+    pixbuf = gcompris.utils.load_pixmap("Land_Safe/flame2.png")
+    self.flame_2 = goocanvas.Image(
+      parent = self.subrootitem,
+      pixbuf = pixbuf,
+      x = x,
+      y = y + 65
+      )
+
+    pixbuf = gcompris.utils.load_pixmap("Land_Safe/flame3.png")
+    self.flame_3 = goocanvas.Image(
+      parent = self.subrootitem,
+      pixbuf = pixbuf,
+      x = x,
+      y = y + 65
+      )
+
+class Display:
+  """class for displays"""
+
+
+  def __init__(self, ship_instance, rootitem):
+    #text for altitude
+    self.rootitem = rootitem
+    text = goocanvas.Text(
+      parent = rootitem,
+      x = 20,
+      y = 20,
+      fill_color = "white",
+      text = _("Altitude : "))
+
+    #initiate text for altitude
+    self.alt_text = goocanvas.Text(
+      parent = rootitem,
+      x = 100,
+      y = 20,
+      fill_color = "white",
+      text = _('start'))
+
+    #text for fuel display
+    fuel_text = goocanvas.Text(
+      parent = rootitem,
+      x = 20,
+      y = 40,
+      fill_color = "white",
+      text = _('Fuel'))
+
+    #fuel tank
+    rectangle = goocanvas.Rect(
+      parent = rootitem,
+      radius_x = 10,
+      radius_y = 10,
+      x=65.0,
+      y=40.0,
+      width=100,
+      height=20,
+      stroke_color="blue")
+
+    #initial fuel in tank
+    self.fuel_amt = 100
+    self.fuel_tank = goocanvas.Rect(
+      parent = rootitem,
+      radius_x = 10,
+      radius_y = 10,
+      x=65.0,
+      y=40.0,
+      width=self.fuel_amt,
+      height=20,
+      fill_color="blue")
+
+    self.land_x = random.randrange(10, 700)
+    landing_area = goocanvas.Rect(
+      parent = rootitem,
+      x=self.land_x,
+      y=440,
+      width=100,
+      height=6,
+      fill_color="green",
+      stroke_color="green")
+
+    self.ship_instance = ship_instance
+    self.key = 0
+    self.stop_consumtion = False
+    self.set_fuel_time()
+
+  def altitude(self, altitude): #display current altitude
+    self.alt = str(364-altitude)
+    self.alt_text.set_property('text', self.alt)
+
+    self.key = self.ship_instance.key_vertical
+
+  def set_fuel_time(self):
+    if self.stop_consumtion == True:
+      return False
+
+    if self.key == 3:
+      gobject.timeout_add(1000, self.fuel)
+
+    elif self.key == 2:
+      gobject.timeout_add(500, self.fuel)
+
+    elif self.key == 1:
+      gobject.timeout_add(250, self.fuel)
+
+    else:
+      gobject.timeout_add(30, self.set_fuel_time)
+
+  def fuel(self):
+    self.fuel_amt -= 1
+    self.fuel_tank.set_property('width', self.fuel_amt)
+
+    if self.fuel_amt != 1:
+      self.set_fuel()
+
+  def increase_vel(self):
+    if self.fuel_amt == 1:
+      return True
+
+  def stop_fuel(self):
+    self.stop_consumtion = True
+
+  def get_area(self):
+    return self.land_x
+
diff --git a/src/Land_Safe-activity/Land_Safe.svg b/src/Land_Safe-activity/Land_Safe.svg
new file mode 100644
index 0000000..e05913d
--- /dev/null
+++ b/src/Land_Safe-activity/Land_Safe.svg
@@ -0,0 +1,472 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:xlink="http://www.w3.org/1999/xlink";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.1 r9760"
+   width="210"
+   height="300"
+   sodipodi:docname="rocket (copy).png">
+  <metadata
+     id="metadata8">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs6" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1366"
+     inkscape:window-height="691"
+     id="namedview4"
+     showgrid="false"
+     inkscape:zoom="0.96"
+     inkscape:cx="105"
+     inkscape:cy="163.02083"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2" />
+  <image
+     width="210"
+     height="300"
+     xlink:href="data:image/png;base64,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
+"
+     id="image10"
+     x="0"
+     y="0" />
+</svg>
diff --git a/src/Land_Safe-activity/Land_Safe.xml.in b/src/Land_Safe-activity/Land_Safe.xml.in
new file mode 100644
index 0000000..a60d6be
--- /dev/null
+++ b/src/Land_Safe-activity/Land_Safe.xml.in
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<GCompris>
+  <Board
+        name="Land_Safe"
+        type="python:Land_Safe"
+        section="/experimental"
+        icon="Land_Safe.svg"
+        difficulty="1"
+        author="your name here"
+        boarddir=""
+        >
+        <title>Land Safe</title>
+        <description>Understanding acceleration due to gravity.</description>
+        <goal>Station the spaceship in the green landing area.</goal>
+        <manual>
+        Acceleration due to gravity experienced by the spaceship is directly proportional to the mass of
+        the planet and inversely proportional to the square of the distance from the centre of the planet. 
+        Thus, with every planet the acceleration will differ and as the spaceship comes closer and closer 
+        to the planet the acceleration increases. 
+        </manual>
+        <credit></credit>
+  </Board>
+  <Data directory=""/>
+</GCompris>
diff --git a/src/Land_Safe-activity/Makefile.am b/src/Land_Safe-activity/Makefile.am
new file mode 100644
index 0000000..33420b5
--- /dev/null
+++ b/src/Land_Safe-activity/Makefile.am
@@ -0,0 +1,35 @@
+# Passthrough, do not break uplevel make rule
+install-activity:
+
+SUBDIRS =
+
+pythondir = $(PYTHON_PLUGIN_DIR)
+
+dist_python_DATA= 	Land_Safe.py
+
+
+
+xmldir = $(pkgdatadir)/@PACKAGE_DATA_DIR@
+
+xml_in_files = \
+	Land_Safe.xml.in
+
+
+xml_DATA = $(xml_in_files:.xml.in=.xml)
+
+# Do not use the INTLTOOL_XML_RULE, we don't need to embed the translations
+# in the file themselves. GCompris pick the translations from the po file at
+# runtime.
+#
+$(xml_DATA): %.xml: %.xml.in
+	sed -e "s/\(<\{1\}\/*\)_/\1/g" $< > $@
+
+# Use this directive and instead of the one above to embed the translations
+# in the xml files directly, this is needed for the tool gcompris2spip
+# INTLTOOL_XML_RULE@
+
+icondir = $(pkgdatadir)/@PACKAGE_DATA_DIR@
+icon_DATA = Land_Safe.svg
+
+EXTRA_DIST = $(icon_DATA) ${xml_in_files} init_path.sh
+CLEANFILES = $(xml_DATA)
diff --git a/src/Land_Safe-activity/gcompris b/src/Land_Safe-activity/gcompris
new file mode 120000
index 0000000..6a7dc8a
--- /dev/null
+++ b/src/Land_Safe-activity/gcompris
@@ -0,0 +1 @@
+../boards/python/gcompris
\ No newline at end of file
diff --git a/src/Land_Safe-activity/init_path.sh b/src/Land_Safe-activity/init_path.sh
new file mode 100755
index 0000000..5a44905
--- /dev/null
+++ b/src/Land_Safe-activity/init_path.sh
@@ -0,0 +1,8 @@
+# Set the different path for this activity
+# This is sourced by runit.sh
+path=$1
+activity=Land_Safe
+plugindir=$path/../boards/.libs
+pythonplugindir=$path 
+resourcedir=$path/resources
+section="/experimental"
diff --git a/src/Land_Safe-activity/resources/Land_Safe/Makefile.am b/src/Land_Safe-activity/resources/Land_Safe/Makefile.am
new file mode 100644
index 0000000..07a0712
--- /dev/null
+++ b/src/Land_Safe-activity/resources/Land_Safe/Makefile.am
@@ -0,0 +1,14 @@
+imgdir = $(pkgdatadir)/@PACKAGE_DATA_DIR@/Land_Safe
+img_DATA = \
+	background1.png \
+	background2.png \
+	crash.png \
+	flame1.png \
+	flame2.png \
+	flame3.png \
+	rocket.png
+	
+EXTRA_DIST = $(img_DATA)
+
+CLEANFILES =
+
diff --git a/src/Land_Safe-activity/resources/Land_Safe/background1.png b/src/Land_Safe-activity/resources/Land_Safe/background1.png
new file mode 100644
index 0000000..9abc0dd
Binary files /dev/null and b/src/Land_Safe-activity/resources/Land_Safe/background1.png differ
diff --git a/src/Land_Safe-activity/resources/Land_Safe/background2.png b/src/Land_Safe-activity/resources/Land_Safe/background2.png
new file mode 100644
index 0000000..e0ac32f
Binary files /dev/null and b/src/Land_Safe-activity/resources/Land_Safe/background2.png differ
diff --git a/src/Land_Safe-activity/resources/Land_Safe/crash.png b/src/Land_Safe-activity/resources/Land_Safe/crash.png
new file mode 100644
index 0000000..3f76d02
Binary files /dev/null and b/src/Land_Safe-activity/resources/Land_Safe/crash.png differ
diff --git a/src/Land_Safe-activity/resources/Land_Safe/flame1.png b/src/Land_Safe-activity/resources/Land_Safe/flame1.png
new file mode 100644
index 0000000..8fa4594
Binary files /dev/null and b/src/Land_Safe-activity/resources/Land_Safe/flame1.png differ
diff --git a/src/Land_Safe-activity/resources/Land_Safe/flame2.png b/src/Land_Safe-activity/resources/Land_Safe/flame2.png
new file mode 100644
index 0000000..3dbb9f6
Binary files /dev/null and b/src/Land_Safe-activity/resources/Land_Safe/flame2.png differ
diff --git a/src/Land_Safe-activity/resources/Land_Safe/flame3.png b/src/Land_Safe-activity/resources/Land_Safe/flame3.png
new file mode 100644
index 0000000..9444dcb
Binary files /dev/null and b/src/Land_Safe-activity/resources/Land_Safe/flame3.png differ
diff --git a/src/Land_Safe-activity/resources/Land_Safe/rocket.png b/src/Land_Safe-activity/resources/Land_Safe/rocket.png
new file mode 100644
index 0000000..c12c0cc
Binary files /dev/null and b/src/Land_Safe-activity/resources/Land_Safe/rocket.png differ
diff --git a/src/Land_Safe-activity/resources/Makefile.am b/src/Land_Safe-activity/resources/Makefile.am
new file mode 100644
index 0000000..1b8140b
--- /dev/null
+++ b/src/Land_Safe-activity/resources/Makefile.am
@@ -0,0 +1,2 @@
+SUBDIRS = Land_Safe
+



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]