# HG changeset patch # User Gideon Visser # Date 1315896783 25200 # Node ID 20b2cedf0f1d0b3abe937394fe429f2d6a3a9fdb # Parent b292370c4548b3279efb1180ea423899204ee9f8 Snake movement now turn diff -r b292370c4548 -r 20b2cedf0f1d mamba/snake.py --- a/mamba/snake.py Mon Sep 12 21:14:15 2011 +0200 +++ b/mamba/snake.py Mon Sep 12 23:53:03 2011 -0700 @@ -2,7 +2,8 @@ from pygame.sprite import Group from pygame.locals import BLEND_MULT -from pygame.draw import lines +#from pygame.draw import lines +from pygame.draw import rect from mamba.sprites import BaseSprite, tile_sizify from mamba import mutators @@ -19,11 +20,19 @@ self.segment_group.add(*self.segments) self.set_orientation(orientation) self.pos = tile_sizify(tile_pos) - self.length = 60.0 + self.length = 80 + self.xs = self.snake_length(self.length) + self.ys = self.snake_length(self.length) head = property(fget=lambda self: self.segments[0]) tail = property(fget=lambda self: self.segments[-1]) + def snake_length(self, size=10): + result = [] + for i in range(size): + result.append(0) + return result + def create_segments(self, tile_pos, orientation): x, y = tile_pos dx, dy = orientation @@ -35,7 +44,9 @@ def draw(self, surface): # self.segment_group.draw(surface) (x, y), l = self.pos, self.length - lines(surface, (0, 0, 255), False, [(x, y), (x + l, y)], 20) + #lines(surface, (0, 0, 255), False, [(x, y), (x + l, y)], 20) + for i in range(0, len(self.xs)): + rect(surface, (0, 0, 255), [(self.xs[i], self.ys[i]), (20, 20)]) def update(self, dt): x, y = self.pos @@ -43,6 +54,12 @@ ds = self.SPEED * dt self.pos = (x + ox * ds, y + oy * ds) + for i in reversed(xrange(1, len(self.xs))): + self.xs[i] = self.xs[i - 1] + self.ys[i] = self.ys[i - 1] + self.xs[0] = self.pos[0] + self.ys[0] = self.pos[1] + def set_orientation(self, orientation): self.orientation = orientation #self.orientation = orientation