tanques/clase_enemigo.py

97 lines
3.9 KiB
Python
Raw Normal View History

2023-06-01 00:39:26 +02:00
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)