commit:7cf90be44ef52b5cd162d0baccea07713fc1085f
author:Chip Black
committer:Chip Black
date:Fri Apr 18 04:03:56 2008 -0500
parents:8b8d87ddf2bd78dbed0ab16095016afe3b028d31
Fixed slope walking dynamics
diff --git a/platformtest.py b/platformtest.py
line changes: +9/-6
index 42ad34b..c9d9ac7
--- a/platformtest.py
+++ b/platformtest.py
@@ -87,16 +87,19 @@ class Richter(Actor):
 		if self.grounded:
 			self.delta[1] = 0
 		else:
-			self.delta[1] -= 0.5
-		# Climb up inclines (visually poetic, is it not?)
+			if self.delta[1] > -15.0:
+				self.delta[1] -= 0.5
 		if self.grounded and self.delta[0] != 0:
-			delta = list(self.delta)
-			if self.collideDelta(delta):
-				for i in range(0,abs(delta[0])):
-					delta[1] += 1
+			# 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))