59 lines
No EOL
2.2 KiB
Python
59 lines
No EOL
2.2 KiB
Python
import pygame
|
|
from settings import Settings
|
|
|
|
class Tanque:
|
|
''' Esta clase gestiona el tanque '''
|
|
def __init__(self, juego):
|
|
self.settings = Settings()
|
|
''' Iniciar tanque y fija su posicion '''
|
|
self.screen = juego.screen
|
|
self.screen_rect = juego.screen.get_rect()
|
|
''' Leer imagen y cargar su rectangulo '''
|
|
self.vTanque = True
|
|
self.rutaImagen = 'imagenes/tanque_arriba_01.png'
|
|
''' Permitir movimiento continuo con teclas '''
|
|
self.mover_derecha = False
|
|
self.mover_izquierda = False
|
|
self.mover_arriba = False
|
|
self.mover_abajo = False
|
|
self.image = pygame.image.load(self.rutaImagen)
|
|
self.rect = self.image.get_rect()
|
|
''' Posicion inicial (abajo en el centro) '''
|
|
self.rect.midbottom = self.screen_rect.midbottom
|
|
|
|
def update(self):
|
|
if self.mover_derecha:
|
|
ruta = 'imagenes/tanque_derecha_'
|
|
self.rect.x += self.settings.velocidad_tanque
|
|
if self.rect.x >= 800 - 64:
|
|
self.rect.x = 800 - 64
|
|
elif self.mover_izquierda:
|
|
ruta = 'imagenes/tanque_izquierda_'
|
|
self.rect.x -= self.settings.velocidad_tanque
|
|
if self.rect.x <= 0:
|
|
self.rect.x = 0
|
|
elif self.mover_arriba:
|
|
ruta = 'imagenes/tanque_arriba_'
|
|
self.rect.y -= self.settings.velocidad_tanque
|
|
if self.rect.y <= 0:
|
|
self.rect.y = 0
|
|
elif self.mover_abajo:
|
|
ruta = 'imagenes/tanque_abajo_'
|
|
self.rect.y += self.settings.velocidad_tanque
|
|
if self.rect.y >= 600 - 64:
|
|
self.rect.y = 600 - 64
|
|
else:
|
|
trocear = self.rutaImagen.split('_')
|
|
ruta = trocear[0] + '_' + trocear[1] + '_'
|
|
''' Simular moviento ruedas tanque '''
|
|
if self.vTanque == True:
|
|
ruta = ruta + '01.png'
|
|
else:
|
|
ruta = ruta + '02.png'
|
|
self.rutaImagen = ruta
|
|
self.image = pygame.image.load(ruta)
|
|
self.vTanque = not self.vTanque
|
|
|
|
def blitme(self):
|
|
''' Pintar tanque en posicion actual '''
|
|
self.screen.blit(self.image, self.rect) |