currently, i'm using all four keys to steer the snake left, right, up and down. I'm wondering how can i only use left and right key to move the snake around.
if event.key == pygame.K_LEFT:
snake.direction = 2
elif event.key == pygame.K_RIGHT:
snake.direction = 3
elif event.key == pygame.K_UP:
snake.direction = 0
elif event.key == pygame.K_DOWN:
snake.direction = 1
def move(self):
if self.direction is 0:
self.dy = -self.block
self.dx = 0
if self.direction is 1:
self.dy = self.block
self.dx = 0
if self.direction is 2:
self.dy = 0
self.dx = -self.block
if self.direction is 3:
self.dy = 0
self.dx = self.block
self.x += self.dx
self.y += self.dy
can anyone guide me how to do that?
Define the directions as follows:
def move(self):
if self.direction is 0:
self.dy = -self.block
self.dx = 0
if self.direction is 1:
self.dy = 0
self.dx = self.block
if self.direction is 2:
self.dy = 0
self.dx = -self.block
if self.direction is 3:
self.dy = self.block
self.dx = 0
self.x += self.dx
self.y += self.dy
When right is pressed then add 1 to snake.direction
and when left is pressed the subtract 1. Use the %
(modulo) operator (see Binary arithmetic operations) to ensure tha the result is in rage [0, 3]:
if event.key == pygame.K_LEFT:
snake.direction = (snake.direction - 1) % 4
if event.key == pygame.K_RIGHT:
snake.direction = (snake.direction + 1) % 4