import pygame
SCREEN_WIDTH = 700
SCREEN_HEIGHT = 500
BG_COLOR = pygame.Color(0, 0, 0)
TEXT_COLOR = pygame.Color(255, 0, 0)
class MainGame():
# 开始游戏
def start_game(self):
# 加载主窗口
pygame.display.init()
MainGame.window = pygame.display.set_mode([SCREEN_WIDTH, SCREEN_HEIGHT])
pygame.display.set_caption("坦克大战")
MainGame.window.fill(BG_COLOR)
MainGame.my_tank = Tank(350,250)
while True:
self.get_event()
MainGame.window.blit(self.get_text_surface("敌方坦克数量:6"), (10, 10))
MainGame.my_tank.display()
pygame.display.update()
def end_game(self):
print("欢迎再次使用!")
exit()
# 获取事件
def get_event(self):
# 获取所有事件
event_lst = pygame.event.get()
# 遍历事件
for event in event_lst:
if event.type == pygame.QUIT:
self.end_game()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
MainGame.my_tank.direction = "L"
MainGame.my_tank.move()
elif event.key == pygame.K_RIGHT:
MainGame.my_tank.direction = "R"
MainGame.my_tank.move()
elif event.key == pygame.K_UP:
MainGame.my_tank.direction = "U"
MainGame.my_tank.move()
elif event.key == pygame.K_DOWN:
MainGame.my_tank.direction = "D"
MainGame.my_tank.move()
def get_text_surface(self, text):
pygame.font.init()
font = pygame.font.SysFont("kaiti", 18)
text_surface = font.render(text, True, TEXT_COLOR)
return text_surface
class Tank():
def __init__(self, left ,top):
self.images = {"U":pygame.image.load("img/p1tankU.gif"),
"D": pygame.image.load("img/p1tankD.gif"),
"L": pygame.image.load("img/p1tankL.gif"),
"R": pygame.image.load("img/p1tankR.gif"),
}
self.direction = "U"
self.image = self.images[self.direction]
self.rect = self.image.get_rect()
self.rect.left = left
self.rect.top = top
self.speed = 10
def move(self):
if self.direction == "L":
self.rect.left -= self.speed
elif self.direction == "R":
self.rect.left += self.speed
elif self.direction == "U":
self.rect.top -= self.speed
elif self.direction == "D":
self.rect.top += self.speed
def fire(self):
pass
def display(self):
self.image = self.images[self.direction]
MainGame.window.blit(self.image,self.rect)
class MyTank(Tank):
def __init__(self):
pass
class EnemyTank(Tank):
def __init__(self):
pass
class Wall():
def __init__(self):
pass
def displayWall(self):
pass
class Bullet():
def __init__(self):
pass
def move(self):
pass
def display(self):
pass
class Music():
def __init__(self):
pass
def play_music(self):
pass
class Explorer():
def __init__(self):
pass
def display(self):
pass
if __name__ == "__main__":
MainGame().start_game()
坦克在按上下左右移动的时候,以前的图像也还存在,请问是哪里出了问题?