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)