#!/usr/bin/env python import sys,pygame,random from pygame.locals import * def cerrar(): pygame.quit() sys.exit(0) def cxy(max,min=3): x1 = random.randint(min, max) y1 = random.randint(min, max) return x1,y1 def main(): w = pygame.display.set_mode((300,300)) reloj = pygame.time.Clock() bucle = True snake_color = (103,97,97) carnada_color = (228,38,38) head_color = (39,98,20) direc = random.randint(0,3) ancho = 10 max = (300 / ancho) - 1 if direc == 0: x1,y1 = cxy(max) xysnake = [(x1,y1),(x1,y1-1),(x1,y1-2)] if direc == 1: x1,y1 = cxy(max) xysnake = [(x1-2,y1),(x1-1,y1),(x1,y1)] if direc == 3: x1,y1 = cxy(max) xysnake = [(x1,y1),(x1-1,y1),(x1-2,y1)] if direc == 2: x1,y1 = cxy(max) xysnake = [(x1,y1-2),(x1,y1-1),(x1,y1)] x0,y0 = cxy(max,0) carnada = pygame.Rect(x0 * 10,y0 * 10,ancho,ancho) while bucle == True: w.fill((255,255,255)) pygame.draw.rect(w,carnada_color,carnada,1) x,y = xysnake[0] snake_head = pygame.Rect(x*ancho,y*ancho,ancho,ancho) pygame.draw.rect(w,head_color,snake_head,1) for xy in xysnake[1:]: x , y = xy snake_body = pygame.Rect(x * ancho,y * ancho,ancho,ancho) pygame.draw.rect(w,snake_color,snake_body,1) for e in pygame.event.get(): if e.type == pygame.QUIT: bucle = False break if e.type == pygame.KEYDOWN: if e.key == pygame.K_UP and direc != 0: direc = 2 if e.key == pygame.K_DOWN and direc != 2: direc = 0 if e.key == pygame.K_LEFT and direc != 3: direc = 1 if e.key == pygame.K_RIGHT and direc != 1: direc = 3 if direc == 3: x,y = xysnake[0] x = x + 1 if x > max: x = 0 xysnake.insert(0, (x,y)) xydel = xysnake.pop() if direc == 2: x,y = xysnake[0] y = y -1 if y < 0: y = max xysnake.insert(0, (x,y)) xydel = xysnake.pop() if direc == 1: x,y = xysnake[0] x = x - 1 if x < 0: x = max xysnake.insert(0, (x,y)) xydel = xysnake.pop() if direc == 0: x,y = xysnake[0] y = y +1 if y > max: y = 0 xysnake.insert(0, (x,y)) xydel = xysnake.pop() if xysnake[0] in xysnake[1:]: print "Que pena perdiste" cerrar() if snake_head.colliderect(carnada): carnada = pygame.Rect( random.randint(0, max) * 10, random.randint(0, max) * 10,ancho,ancho) if direc == 1: xysnake.insert(0,(x-1,y)) if direc == 3: xysnake.insert(0,(x+1,y)) if direc == 0: xysnake.insert(0,(x,y+1)) if direc == 2: xysnake.insert(0,(x,y-1)) pygame.display.update() reloj.tick(15) cerrar() if __name__ == '__main__': pygame.init() main()
jueves, 15 de agosto de 2013
Etiquetado Como: pygame, python, snippets
Codigo Simple Snake con Pygame basado en pygame.Rect
Una de las primeras cosas que hice con Pygame en el clásico juego Snake que en otro tutorial voy a explicar paso a paso su desarrollo, ahora les comparto el código fuente utilizando los Rectángulos de pygame - pygame.Rect
Suscribirse a:
Comentarios de la entrada (Atom)
0 comentarios:
Publicar un comentario
Gracias por comentarnos