Mercurial > mamba
changeset 145:20b2cedf0f1d
Snake movement now turn
author | Gideon Visser <gideon@gideonvisser.com> |
---|---|
date | Mon, 12 Sep 2011 23:53:03 -0700 |
parents | b292370c4548 |
children | 5bade7867d04 |
files | mamba/snake.py |
diffstat | 1 files changed, 20 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- 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