commit:c6b7c25cb352bd024be02ca0dfcc6175e258ba3d
author:Chip Black
committer:Chip Black
date:Sun Jul 27 14:18:46 2008 -0500
parents:42de7ac41c5e40fc5a189e3ca023b7ec8dfa4411
Major changes to platformtest.py to use new Level architecture
diff --git a/platformtest.py b/platformtest.py
line changes: +21/-168
index b0e095e..29771d8
--- a/platformtest.py
+++ b/platformtest.py
@@ -1,12 +1,8 @@
 #!/usr/bin/env python
 
 import pygame
-from Richter.Sprite import *
-from Richter.Collage import *
-from Richter.Surface import *
-from Richter.Actor import *
-from Richter.Stage import *
-from Richter.Camera import *
+from Richter.Level import Level
+from Richter.Camera import Camera
 import Richter.Engine as Engine
 
 #resolution = (1280,1024)
@@ -17,189 +13,46 @@ Engine.init(resolution)
 
 pygame.display.set_caption("platformtest")
 
-stage = Stage()
-main = Layer('data/example1')
-stage.addLayerFront(main)
-stage.addLayerBack(Layer('data/stars', 1.0, 0.25))
-stage.setSurfaces('data/example1')
+l = Level('levels/example1')
+Engine.updaters.append(l.update)
+Engine.drawers.append(l.draw)
 
-candelabra = Sprite(['Sprites/candelabra_short/cand_s_%d.png' % x for x in range(1,4)])
-candelabra.setPosition(64, 64)
-candelabra.setScale(2.0)
-candelabra.setGravity(CENTER, BOTTOM)
-candelabra.setFramerate(10.0)
-candelabra.play()
+player = l.env['player']
 
-main.add(candelabra)
-Engine.drawers.append(stage.draw)
-
-camera = Camera(stage)
-camera.setBbox(main.bbox)
+camera = Camera(l)
+#camera.setBbox(l.bbox)
 Engine.updaters.append(camera.update)
-
-class Richter(Actor):
-	def __init__(self, surfaces=None):
-		Actor.__init__(self, surfaces)
-
-		self.defineState('walk_l',
-			Sprite(['Sprites/Richter/richter%d.png' % n for n in range(0,8)],
-			framerate=10.0, scale=2.0, gravity=(CENTER,BOTTOM)))
-		self.defineState('walk_r',
-			Sprite(['Sprites/Richter/richter%d.png' % n for n in range(0,8)], mirror=True,
-			framerate=10.0, scale=2.0, gravity=(CENTER,BOTTOM)))
-		self.defineState('idle_l',
-			Sprite("Sprites/Richter/richter0.png", scale=2.0, gravity=(CENTER,BOTTOM)))
-		self.defineState('idle_r',
-			Sprite("Sprites/Richter/richter0.png", mirror=True, scale=2.0, gravity=(CENTER,BOTTOM)))
-		self.setState('idle_r')
-
-		self.delta = [0,0]
-		self.jumping = False
-		self.grounded = self.collideDelta((0,-1))
-	
-	
-	def jump(self):
-		if not self.jumping and self.grounded:
-			self.delta[1] = 15.0
-			self.jumping = True
-			self.grounded = False
-
-
-	def jumpCancel(self):
-		self.jumping = False
-		if self.delta[1] > 0.0:
-			self.delta[1] = 0.0
-
-
-	def bounce(self):
-		self.delta[1] = -self.delta[1]
-
-
-	def walkRight(self):
-		self.delta[0] = 2
-		self.setState('walk_r')
-
-
-	def walkLeft(self):
-		self.delta[0] = -2
-		self.setState('walk_l')
-
-
-	def idle(self):
-		if self.currentstate == 'walk_l':
-			self.setState('idle_l')
-		else:
-			self.setState('idle_r')
-		self.delta[0] = 0
-
-
-	def update(self):
-		if self.grounded:
-			self.delta[1] = 0
-		else:
-			if self.delta[1] > -15.0:
-				self.delta[1] -= 0.5
-		if self.grounded and self.delta[0] != 0:
-			# Climb up inclines (visually poetic, is it not?)
-			if self.collideDelta(self.delta):
-				delta = list(self.delta)
-				for delta[1] in range(1, abs(delta[0]) + 1):
-					if not self.collideDelta(delta):
-						self.delta = delta
-						break
-			# ... and walk down slopes
-			else:
-				self.delta[1] = -abs(self.delta[0])
-		self.move(self.delta)
-		self.grounded = self.collideDelta((0,-1))
-
-
-richter = Richter(stage.surfaces)
-richter.setPosition(32, 64)
-main.add(richter)
-camera.setFocus(richter)
-
-class Zombie(Actor):
-	def __init__(self, surfaces=None):
-		Actor.__init__(self, surfaces)
-
-		self.defineState('walk_r',
-			Sprite(['Sprites/zombie soldier/zombiesoldierwalk_%d.png' % n for n in range(1,5)],
-			framerate=10.0, scale=2.0, gravity=(CENTER,BOTTOM)))
-		self.defineState('walk_l',
-			Sprite(['Sprites/zombie soldier/zombiesoldierwalk_%d.png' % n for n in range(1,5)],
-			mirror=True, framerate=10.0, scale=2.0, gravity=(CENTER,BOTTOM)))
-
-		self.setState('walk_r')
-		self.direction = 0
-		self.disabled = 0
-		self.topbox = pygame.Rect(self.states['walk_l'].hitbox)
-		self.topbox.height = 10
-
-	def update(self):
-		if self.disabled > 0:
-			if self.disabled % 2:
-				self.setState('walk_r')
-			else:
-				self.setState('walk_l')
-			self.disabled -= 1
-			if self.disabled == 0:
-				if self.direction == 0:
-					self.setState('walk_r')
-				else:
-					self.setState('walk_l')
-		else:
-			if self.direction == 0:
-				if self.move((1, 0)):
-					self.direction = 1
-					self.setState('walk_l')
-			elif self.direction == 1:
-				if self.move((-1, 0)):
-					self.direction = 0
-					self.setState('walk_r')
-
-			self.topbox.bottom = self.position[1] + 72
-			self.topbox.left = self.position[0] - 31
-			if self.topbox.collidepoint(richter.position):
-				self.disabled = 120
-				richter.bounce()
-
-zombie = Zombie(stage.surfaces)
-zombie.setPosition(512, 64)
-main.add(zombie)
-
+camera.setFocus(player)
 
 def input(e):
 	if e.type == pygame.KEYDOWN:
 		if e.key == pygame.K_LEFT:
-			richter.walkLeft()
+			player.walkLeft()
 		elif e.key == pygame.K_RIGHT:
-			richter.walkRight()
+			player.walkRight()
 		elif e.key == pygame.K_UP:
-			richter.jump()
+			player.jump()
 		elif e.key == pygame.K_1:
-			stage.toggleDrawSurfaces()
-		elif e.key == pygame.K_2:
-			camera.clearBbox()
-		elif e.key == pygame.K_3:
-			camera.setBbox(main.bbox)
+			l.toggleDrawSurfaces()
+		#elif e.key == pygame.K_2:
+		#	camera.clearBbox()
+		#elif e.key == pygame.K_3:
+		#	camera.setBbox(l.bbox)
 		elif e.key == pygame.K_ESCAPE:
 			Engine.stop()
 	elif e.type == pygame.KEYUP:
 		if e.key == pygame.K_LEFT or e.key == pygame.K_RIGHT:
-			richter.idle()
+			player.idle()
 		elif e.key == pygame.K_UP:
-			richter.jumpCancel()
+			player.jumpCancel()
 	elif e.type == pygame.QUIT:
 		Engine.stop()
 
 Engine.eventhandlers.append(input)
 
 def update():
-	richter.update()
-	if richter.position[1] < 0:
-		richter.position = [richter.position[0],480]
-	zombie.update()
+	if player.position[1] < 0:
+		player.position = [player.position[0],480]
 
 Engine.updaters.append(update)