Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/Gambiarra/gambiarra.py
diff options
context:
space:
mode:
authorLuiz Irber <luiz.irber@gmail.com>2007-11-11 02:03:22 (GMT)
committer Luiz Irber <luiz.irber@gmail.com>2007-11-11 02:03:22 (GMT)
commitf8324d6c1bfdafa884d926ca4da317ab8f8e96f5 (patch)
tree6273f28f4642219627453584a6f1f6b990e93341 /Gambiarra/gambiarra.py
parent96daec740440285d4232189375a06fd592fa25bb (diff)
V5, aa meia-noite buscarei sua ALMA! (versao sem crase, e nem til)
Diffstat (limited to 'Gambiarra/gambiarra.py')
-rw-r--r--Gambiarra/gambiarra.py98
1 files changed, 73 insertions, 25 deletions
diff --git a/Gambiarra/gambiarra.py b/Gambiarra/gambiarra.py
index 83843fd..a6a0d25 100644
--- a/Gambiarra/gambiarra.py
+++ b/Gambiarra/gambiarra.py
@@ -7,6 +7,40 @@ import os
from levels import levels as Levels
from objects.wall import *
+def check_collision(sprite_list, wall_list):
+ new_objects = pygame.sprite.RenderPlain()
+ for obj in sprite_list:
+ obj.remove(sprite_list)
+ obj.add(new_objects)
+
+ for s in sprite_list:
+ #TODO: verifica colisao de objetos dinamicos
+ pass
+
+ for w in wall_list:
+ if obj.rect.colliderect(w.rect):
+ if isinstance(w, DownWall):
+ obj.speed[1] = -0.7*obj.speed[1]
+ if obj.rect.bottom > w.rect.top:
+ obj.rect.bottom = w.rect.top - 1
+
+ if isinstance(w, UpWall):
+ obj.speed[1] = -0.7*obj.speed[1]
+ if obj.rect.top < w.rect.bottom:
+ obj.rect.top = w.rect.bottom + 1
+
+ if isinstance(w, LeftWall):
+ obj.speed[0] = -0.9*obj.speed[0]
+ if obj.rect.left < w.rect.right:
+ obj.rect.left = w.rect.right + 1
+
+ if isinstance(w, RightWall):
+ obj.speed[0] = -0.9*obj.speed[0]
+ if obj.rect.right > w.rect.left:
+ obj.rect.right = w.rect.left - 1
+
+ return new_objects
+
class Game(object):
fps = 30
screen = None
@@ -36,49 +70,63 @@ class Game(object):
def update_screen(self, fps):
#update dos elementos da tela
- self.check_collision()
+ objs = check_collision(self.allLevels[self.level].simulator.objects,
+ self.allLevels[self.level].simulator._walls)
+ self.allLevels[self.level].simulator.objects = objs
for obj in self.allLevels[self.level].simulator.objects:
#obj eh um objeto na tela
if obj.mobility:
newpos = obj.rect.move((obj.speed[0],obj.speed[1]))
obj.rect = newpos
- obj.speed[0] *= 0.9
+ if obj.speed[0]:
+ obj.speed[0] *= 0.9
+ else:
+ obj.speed[0] = 20
obj.speed[1] += obj.gravity
- def check_collision(self):
- for obj in self.allLevels[self.level].simulator.objects:
- obj.remove(self.allLevels[self.level].simulator.objects)
- collision = pygame.sprite.spritecollide(obj,
- self.allLevels[self.level].simulator.objects, 0)
- obj.add(self.allLevels[self.level].simulator.objects)
- if collision != []:
- if isinstance(collision[0],DownWall):
- obj.speed[1] =- obj.speed[1]
-
- def actors_clear(self):
- #retira ator da tela
- pass
-
- def actors_draw(self):
- #desenha ator na tela
- pass
-
def start_window(self):
#desenha a tela inicial (abstrato -chama os outros metodos predefinidos)
pass
def next_level(self):
pass
+
+ def mouse_event(self, mousePos, mouseButtonsPressed ):
+ if mouseButtonsPressed[0]:
+ #verificar colisao com thing
+ #colidiu = verificar Colisao!!!
+ collided = False
+ #Pegar o objeto
+ obj = None
+ mouseMove = python.mouse.get_rel()
+ if collided:
+ while mouseButtonsPressed[0]:
+ pass
+
+ mouseMove = python.mouse.get_rel()
+ #comentado porque por enquanto obj eh None
+ #obj.rect = obj.rect.move(mouseMove)
def main_loop(self):
#loop principal
+ #-definir e desenhar o nivel
+ #-esperar por eventos do mouse:
+ # -clique sobre um thing, arrasta
+ # -clique sobre um botao
- while self.run:
- self.clock.tick(self.fps)
- self.update_screen(self.fps)
- self.allLevels[self.level].draw()
+ #quando clicar em play transformar o botao em stop
+ playPressed = True
+ if playPressed:
+ while self.run:
+ self.clock.tick(self.fps)
+ self.update_screen(self.fps)
+ self.allLevels[self.level].draw()
- pygame.display.flip()
+ pygame.display.flip()
+ for event in pygame.event.get():
+ if event.type == MOUSEBUTTONDOWN:
+ self.mouse_event( pygame.mouse.get_pos(),
+ pygame.mouse.get_pressed() )
def main():
game = Game()