1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| import pygame, sys,os
from pygame.locals import *
#----------------------------------CLASSES---------------------------------#
class Snake(object):
x, y = 76, 76
isUp, isDown, isRight, isLeft = False, False, True, False
lastDir = 'right'
last_time = 0
def __init__(self):
pygame.init()
window = pygame.display.set_mode((400, 400), HWSURFACE | DOUBLEBUF)
pygame.display.set_caption('PySnake')
screen = pygame.display.get_surface()
tete_url = os.path.join("tete.bmp")
bloc_url = os.path.join("bloc.bmp")
tete = pygame.image.load(tete_url)
bloc = pygame.image.load(bloc_url)
pygame.key.set_repeat(10, 10)
self.blit
def input(events):
time = pygame.time.get_ticks()
for event in events:
if event.type == QUIT:
sys.exit(0)
elif event.type == KEYDOWN:
if event.key == K_RIGHT and lastDir != 'left':
isUp, isDown, isRight, isLeft = False, False, True, False
lastDir = 'right'
elif event.key == K_LEFT and lastDir != 'right':
isUp, isDown, isRight, isLeft = False, False, False, True
lastDir = 'left'
elif event.key == K_UP and lastDir != 'down':
isUp, isDown, isRight, isLeft = True, False, False, False
lastDir = 'up'
elif event.key == K_DOWN and lastDir != 'up':
isUp, isDown, isRight, isLeft = False, True, False, False
lastDir = 'down'
if time - last_time >= 75:
if isUp: y -= 10
if isDown: y += 10
if isRight: x += 10
if isLeft : x -= 10
last_time = time
def borders_verify(self):
global x, y
if x >= 400 - 10: x -= 10
elif x <= 0: x += 10
elif y >= 400 - 10: y -= 10
elif y <= 0: y += 10
def blit(self):
screen.fill((0,0,0))
borders_verify()
screen.blit(tete, (x,y))
pygame.display.flip()
#----------------------------MAIN--------------------------------#
snake = Snake()
while True:
snake.input(pygame.event.get())
snake.borders_verify()
snake.blit() |
Partager