97 lines
3.9 KiB
Python
97 lines
3.9 KiB
Python
|
import pygame
|
||
|
import random
|
||
|
from pygame.sprite import Sprite
|
||
|
|
||
|
class Enemigo(Sprite):
|
||
|
''' Clase para representar un enemigo '''
|
||
|
|
||
|
def __init__(self, juego):
|
||
|
''' Inicializa al enemigo y lo coloca '''
|
||
|
super().__init__()
|
||
|
self.screen = juego.screen
|
||
|
self.direccion = 'Aba'
|
||
|
# Cargamos imagen del enemigo
|
||
|
direccion = random.randrange(1,5)
|
||
|
if direccion == 1:
|
||
|
self.direccion = 'Aba'
|
||
|
self.rutaImagen = 'imagenes/enemigo_abajo_01.png'
|
||
|
if direccion == 2:
|
||
|
self.direccion = 'Arr'
|
||
|
self.rutaImagen = 'imagenes/enemigo_arriba_01.png'
|
||
|
if direccion == 3:
|
||
|
self.direccion = 'Dcha'
|
||
|
self.rutaImagen = 'imagenes/enemigo_derecha_01.png'
|
||
|
if direccion == 4:
|
||
|
self.direccion = 'Izda'
|
||
|
self.rutaImagen = 'imagenes/enemigo_izquierda_01.png'
|
||
|
self.velocidad = 1
|
||
|
self.avance = random.randrange(25,200)
|
||
|
self.vEnemigo = True
|
||
|
self.image = pygame.image.load(self.rutaImagen)
|
||
|
self.rect = self.image.get_rect()
|
||
|
# Colocar al enemigo en su posicion
|
||
|
self.rect.x = self.rect.width
|
||
|
self.rect.y = self.rect.height
|
||
|
# guardamos posicion exacta del enemigo
|
||
|
self.x = float(self.rect.x)
|
||
|
self.y = float(self.rect.y)
|
||
|
|
||
|
def update(self):
|
||
|
''' Mover a los enemigos '''
|
||
|
if self.vEnemigo:
|
||
|
if self.direccion == 'Aba':
|
||
|
self.rutaImagen = 'imagenes/enemigo_abajo_01.png'
|
||
|
if self.direccion == 'Arr':
|
||
|
self.rutaImagen = 'imagenes/enemigo_arriba_01.png'
|
||
|
if self.direccion == 'Dcha':
|
||
|
self.rutaImagen = 'imagenes/enemigo_derecha_01.png'
|
||
|
if self.direccion == 'Izda':
|
||
|
self.rutaImagen = 'imagenes/enemigo_izquierda_01.png'
|
||
|
else:
|
||
|
if self.direccion == 'Aba':
|
||
|
self.rutaImagen = 'imagenes/enemigo_abajo_02.png'
|
||
|
if self.direccion == 'Arr':
|
||
|
self.rutaImagen = 'imagenes/enemigo_arriba_02.png'
|
||
|
if self.direccion == 'Dcha':
|
||
|
self.rutaImagen = 'imagenes/enemigo_derecha_02.png'
|
||
|
if self.direccion == 'Izda':
|
||
|
self.rutaImagen = 'imagenes/enemigo_izquierda_02.png'
|
||
|
self.vEnemigo = not self.vEnemigo
|
||
|
# Desplazar tanque enemigo
|
||
|
if self.avance <= 0:
|
||
|
self.avance = random.randrange(25,200)
|
||
|
direccion = random.randrange(1, 5)
|
||
|
if direccion == 1:
|
||
|
self.direccion = 'Aba'
|
||
|
self.rutaImagen = 'imagenes/enemigo_abajo_01.png'
|
||
|
if direccion == 2:
|
||
|
self.direccion = 'Arr'
|
||
|
self.rutaImagen = 'imagenes/enemigo_arriba_01.png'
|
||
|
if direccion == 3:
|
||
|
self.direccion = 'Dcha'
|
||
|
self.rutaImagen = 'imagenes/enemigo_derecha_01.png'
|
||
|
if direccion == 4:
|
||
|
self.direccion = 'Izda'
|
||
|
self.rutaImagen = 'imagenes/enemigo_izquierda_01.png'
|
||
|
else:
|
||
|
if self.direccion == 'Arr':
|
||
|
self.rect.y -= self.velocidad
|
||
|
if self.direccion == 'Aba':
|
||
|
self.rect.y += self.velocidad
|
||
|
if self.direccion == 'Dcha':
|
||
|
self.rect.x += self.velocidad
|
||
|
if self.direccion == 'Izda':
|
||
|
self.rect.x -= self.velocidad
|
||
|
# Restamos movimiento realizado
|
||
|
self.avance -= self.velocidad
|
||
|
# Cambiar direccion si se sale de pantalla
|
||
|
pantalla = self.screen.get_rect()
|
||
|
if self.rect.x <= pantalla.left: # choca lado izdo
|
||
|
self.direccion = 'Dcha'
|
||
|
if self.rect.x >= pantalla.right - 64:
|
||
|
self.direccion = 'Izda'
|
||
|
if self.rect.y <= pantalla.top:
|
||
|
self.direccion = 'Aba'
|
||
|
if self.rect.y >= pantalla.bottom - 64:
|
||
|
self.direccion = 'Arr'
|
||
|
self.image = pygame.image.load(self.rutaImagen)
|