pygame

Para despedirme os regalo esta función a la cual podéis llamar desde cualquiera de vuestras GUI que ya tenéis creadas:

def snake():

# Colores

NEGRO = (0, 0, 0)

BLANCO = (255, 255, 255)

# Establecemos el largo y alto de cada segmento de la serpiente

largodel_segmento = 15

altodel_segmento = 15

lar=15

# Margen entre cada segmento

margendel_segmento = 3

#Velocidad inicial

cambio_x = largodel_segmento + margendel_segmento

cambio_y = 0

class Segmento(pygame.sprite.Sprite):

«»» Clase que representa un segmento de la serpiente. «»»

# — Métodos

# Función constructor

def init__(self, x, y): # Llamada al constructor padre super().__init()

# Establecemos el alto y largo

self.image = pygame.Surface([largodel_segmento, altodel_segmento])

self.image.fill(BLANCO)

# Establecemos como punto de partida la esquina superior izquierda.

self.rect = self.image.get_rect()

self.rect.x = x

self.rect.y = y

# Inicializamos Pygame

pygame.init()

# Creamos una pantalla

pantalla = pygame.display.set_mode([450, 450])

# Creamos un título para la ventana

pygame.display.set_caption(‘Snake Easy’)

listade_todoslos_sprites = pygame.sprite.Group()

# Creamos la serpiente inicial.

segementos_dela_serpiente = []

for i in range(lar):

x = 250 – (largodel_segmento + margendel_segmento) * i

y = 30

segmento = Segmento(x, y)

segementos_dela_serpiente.append(segmento)

listade_todoslos_sprites.add(segmento)

reloj = pygame.time.Clock()

hecho = False

while not hecho:

for evento in pygame.event.get():

if evento.type == pygame.QUIT:

hecho = True

# Establecemos la velocidad basándonos en la tecla presionada

# Queremos que la velocidad sea la suficiente para mover un segmento

# más el margen.

if evento.type == pygame.KEYDOWN:

if evento.key == pygame.K_LEFT:

cambio_x = (largodel_segmento + margendel_segmento) * -1

cambio_y = 0

if evento.key == pygame.K_RIGHT:

cambio_x = (largodel_segmento + margendel_segmento)

cambio_y = 0

if evento.key == pygame.K_UP:

cambio_x = 0

cambio_y = (altodel_segmento + margendel_segmento) * -1

if evento.key == pygame.K_DOWN:

cambio_x = 0

cambio_y = (altodel_segmento + margendel_segmento)

if evento.key == pygame.K_ESCAPE:

pygame.quit()

if evento.key == pygame.K_SPACE:

for i in range (0,100):

segementos_dela_serpiente.append(segmento)

# Eliminamos el último segmento de la serpiente

# .pop() este comando elimina el último objeto de una lista.

segmento_viejo = segementos_dela_serpiente.pop()

listade_todoslos_sprites.remove(segmento_viejo)

# Determinamos dónde aparecerá el nuevo segmento

x = segementos_dela_serpiente[0].rect.x + cambio_x

y = segementos_dela_serpiente[0].rect.y + cambio_y

segmento = Segmento(x, y)

# Insertamos un nuevo segmento en la lista

segementos_dela_serpiente.insert(0,segmento)

listade_todoslos_sprites.add(segmento)

# — Dibujamos todo

# Limpiamos la pantalla

pantalla.fill(NEGRO)

listade_todoslos_sprites.draw(pantalla)

# Actualizamos la pantalla

pygame.display.flip()

# Pausa

reloj.tick(5)

pygame.quit()

AlainSQ