Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/example.py
diff options
context:
space:
mode:
Diffstat (limited to 'example.py')
-rw-r--r--example.py155
1 files changed, 155 insertions, 0 deletions
diff --git a/example.py b/example.py
new file mode 100644
index 0000000..41c794e
--- /dev/null
+++ b/example.py
@@ -0,0 +1,155 @@
+#! /usr/bin/env python
+# Rayito example
+# Copyright (C) 2011 Gabriel Eirea
+#
+# 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/>.
+#
+# Contact information:
+# Gabriel Eirea geirea@gmail.com
+# Ceibal Jam http://ceibaljam.org
+
+
+import pygame
+import rayito
+
+if __name__ == "__main__":
+
+ pygame.init()
+ screen = pygame.display.set_mode((800,600))
+ clock = pygame.time.Clock()
+
+ bicho_image = pygame.image.load('bicho.png').convert_alpha()
+ bicho = rayito.RtoImage(bicho_image, (50, 50))
+ bicho2 = rayito.RtoImage(bicho_image, (100, 100))
+
+ font24 = pygame.font.Font(None, 24)
+ txts = ["Hola, yo soy Pancho",
+ "No creo que consigas\nnada siguiendome",
+ "Pero si te sirve de consuelo,\nsomos apenas unos sprites\natrapados en una grilla"]
+ dia = rayito.RtoDialog(txts, font24, (200, 200, 0), (0, 0, 200), (170,130))
+ txts = ["Nada que ver",
+ "Yo estoy muy\ncontento aca"]
+ dia2 = rayito.RtoDialog(txts, font24, (255, 255, 0), (0, 0, 100), (450,130))
+
+ b1 = rayito.RtoButton("Apretame", font24, (255, 200, 0), (0, 100, 150), (70,60))
+
+ images = []
+ master_image = pygame.image.load('xoxi-ninios-sprite-01.png').convert_alpha()
+ master_width, master_height = master_image.get_size()
+ w = int(master_width/4)
+ h = int(master_height/4)
+ for i in xrange(4):
+ images.append(master_image.subsurface((i*w, 0, w, h)))
+ for i in xrange(4):
+ images.append(master_image.subsurface((i*w, h, w, h)))
+ for i in xrange(4):
+ images.append(master_image.subsurface((i*w, 2*h, w, h)))
+ for i in xrange(4):
+ images.append(master_image.subsurface((i*w, 3*h, w, h)))
+ fms = [0, 1, 0, 2, 0, 1, 0, 3, # up
+ 4, 5, 4, 6, 4, 5, 4, 7, # down
+ 8, 9, 8, 10, 8, 9, 8, 11, # left
+ 15, 13, 15, 14, 15, 13, 15, 12, # right
+ 0, 4, 8, 15] # stopped in 4 directions
+ nf = [1, 2, 3, 4, 5, 6, 7, 0,
+ 9, 10, 11, 12, 13, 14, 15, 8,
+ 17, 18, 19, 20, 21, 22, 23, 16,
+ 25, 26, 27, 28, 29, 30, 31, 24,
+ 32, 33, 34, 35]
+ dxs = [0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -8, -8, -8, -8, -8, -8, -8, -8,
+ 8, 8, 8, 8, 8, 8, 8, 8,
+ 0, 0, 0, 0]
+ dys = [-6, -6, -6, -6, -6, -6, -6, -6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0]
+ sp = rayito.RtoSprite(images, fms, nf, dxs, dys, (50, 200))
+ sp2 = rayito.RtoSprite(images, fms, nf, dxs, dys, (420, 200))
+
+ sound = pygame.mixer.Sound('junggle_btn045.wav')
+ snd = rayito.RtoSound(sound, 1)
+
+ tl = rayito.RtoTimeLine()
+ tl.add_event(0, sp, 'update_frame', 35)
+ tl.add_event(0, sp2, 'update_frame', 34)
+ tl.add_event(0, dia, 'restart')
+ tl.add_event(0, dia2, 'restart')
+ tl.add_event(0, sp, 'show')
+ tl.add_event(0, sp2, 'show')
+ tl.add_event(1000, sp, 'update_frame', 24)
+ tl.add_event(3000, sp, 'update_frame', 35)
+ tl.add_event(3500, snd, 'play')
+ tl.add_event(3500, dia, 'show')
+ tl.add_event(5500, dia, 'next_text')
+ tl.add_event(7500, dia, 'next_text')
+ tl.add_event(9500, dia, 'next_text')
+ tl.add_event(10000, dia2, 'show')
+ tl.add_event(10000, snd, 'play')
+ tl.add_event(12000, dia2, 'next_text')
+ tl.add_event(14000, dia2, 'next_text')
+ tl.add_event(15000, sp, 'update_frame', 16)
+ tl.add_event(17000, sp, 'update_frame', 34)
+ tl.add_event(19000, sp, 'hide')
+ tl.add_event(19000, b1, 'show')
+
+ tl2 = rayito.RtoTimeLine()
+ tl2.add_event(0, bicho, 'show')
+ tl2.add_event(2000, bicho, 'move_start', (.06, .06))
+ tl2.add_event(6000, bicho, 'hide')
+
+ bg = pygame.image.load('derechos-plaza-fondo.jpg').convert_alpha()
+
+ pl = rayito.RtoPlayer((600, 500), (50, 50), tl, loop = False, bg_image = bg)
+ pl.play()
+
+ playing = True
+ global_time = 0
+ scene = 0
+
+ while playing:
+ for event in pygame.event.get():
+ if event.type == pygame.QUIT:
+ playing = False
+ elif event.type == pygame.MOUSEBUTTONDOWN:
+ pressed = pl.pressed(event.pos)
+ if pressed and pl.is_finished():
+ pl.new_timeline(tl2)
+ pl.play()
+ scene = 1
+ global_time = 0
+ elif event.type == pygame.KEYDOWN:
+ if event.key == pygame.K_SPACE:
+ if pl.is_paused():
+ pl.play()
+ else:
+ pl.pause()
+ elif event.key == pygame.K_ESCAPE:
+ playing = False
+
+ time_passed = clock.tick(20)
+ global_time += time_passed
+
+# screen.fill((0, 0, 0))
+
+ pl.update(global_time)
+ pl.render(screen)
+
+ pygame.display.flip()
+
+ if pl.is_finished():
+ if scene == 1:
+ playing = False