Mercurial > skaapsteker
changeset 50:7d411ed02eac
Initial stab at detecting collisions.
author | Simon Cross <hodgestar@gmail.com> |
---|---|
date | Sun, 03 Apr 2011 21:18:31 +0200 |
parents | 64cf9949e189 |
children | 8efb35009ba0 |
files | data/levels/level1.json scripts/level-editor skaapsteker/level.py skaapsteker/levelscene.py skaapsteker/physics.py |
diffstat | 5 files changed, 13 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/data/levels/level1.json Sun Apr 03 21:12:34 2011 +0200 +++ b/data/levels/level1.json Sun Apr 03 21:18:31 2011 +0200 @@ -18,7 +18,7 @@ "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" ], "enemies": [ - {"type": "Dummy", "pos": [2, 2], "direction": "left" } + {"type": "Dummy", "pos": [4, 2], "direction": "left" } ], "sprites": [ {"type": "enemies.Dummy", "pos": [2, 2], "direction": "left" }
--- a/scripts/level-editor Sun Apr 03 21:12:34 2011 +0200 +++ b/scripts/level-editor Sun Apr 03 21:18:31 2011 +0200 @@ -52,6 +52,7 @@ clip_rect = pygame.Rect(position, screen_surface.get_size()) level_surface.set_clip(clip_rect) level.draw(level_surface) + level.draw_tiles(level_surface) screen_surface.blit(level_surface, (0, 0), clip_rect) text = skaapsteker.widgets.text.Text("Level: %s.\nOffset: %r"
--- a/skaapsteker/level.py Sun Apr 03 21:12:34 2011 +0200 +++ b/skaapsteker/level.py Sun Apr 03 21:18:31 2011 +0200 @@ -101,6 +101,3 @@ def draw(self, surface): self.draw_background(surface) - self.draw_tiles(surface) - -
--- a/skaapsteker/levelscene.py Sun Apr 03 21:12:34 2011 +0200 +++ b/skaapsteker/levelscene.py Sun Apr 03 21:18:31 2011 +0200 @@ -16,6 +16,8 @@ # hackity, hack, hack for sprite in self._level.enemies: self._world.add(sprite) + for sprite in self._level.tiles: + self._world.add(sprite) def draw(self, screen_surface): self._world.update()
--- a/skaapsteker/physics.py Sun Apr 03 21:12:34 2011 +0200 +++ b/skaapsteker/physics.py Sun Apr 03 21:18:31 2011 +0200 @@ -73,5 +73,14 @@ for sprite in self._mobiles: sprite.deltap(dt) + # check for collisions + print "-------" + for sprite1, sprites in pygame.sprite.groupcollide(self._mobiles, self._all, False, False).iteritems(): + for sprite2 in sprites: + if sprite1 is sprite2: + continue + print "Collision! %r (%s), %r (%s)" % (sprite1, id(sprite1), sprite2, id(sprite2)) + print " ", sprite1.rect, sprite2.rect + def draw(self, surface): self._all.draw(surface)