import pygame as p
screen_widht = 1800
screen_height = 1000
bg_color = p.Color(0,0,0)
text_color = p.Color(255,0,0)
class MainGame():
window =None
my_tank=None
def __init__(self):
pass
def startGame(self):
p.display.init()
MainGame.window=p.display.set_mode([screen_widht,screen_height]) #设置高度和宽度,必须是一个列表
MainGame.my_tank=Tank(850,400)
p.display.set_caption('坦克大战')
while True:
MainGame.window.fill(bg_color)
self.getEvent()
MainGame.window.blit(self.getTextSuface('敌方坦克剩余数量:6'),(10,10))
MainGame.my_tank.displayTank() #让坦克进行显示
p.display.update()
def endGame(self):
print('谢谢使用,欢迎下次再来')
exit()#这个函数的功能就是关闭窗口
def getTextSuface(self,text):
p.font.init()
font = p.font.SysFont('kaiti',18)
TextSurface=font.render(text,True,text_color)
return TextSurface
def getEvent(self):
# 读取全部事件
eventList = p.event.get()
for event in eventList:
#判断按下的是关闭还是键盘按键
#当按键按下的是关闭时,退出
if event.type == p.QUIT:
self.endGame()
#当按下的是键盘按键时
if event.type == p.KEYDOWN:
if event.key == p.K_LEFT:
#让坦克切换方向
MainGame.my_tank.direction = 'L'
#调用方法, 让坦克移动
MainGame.my_tank.move()
print('按下左键')
if event.key == p.K_RIGHT:
MainGame.my_tank.direction ='R'
MainGame.my_tank.move()
print('按下右键')
if event.key == p.K_UP:
MainGame.my_tank.direction ='U'
MainGame.my_tank.move()
print('按下上键')
if event.key == p.K_DOWN:
MainGame.my_tank.direction ='D'
MainGame.my_tank.move()
print('按下下键')
class Tank():
def __init__(self,left,top):
self.images={'U':p.image.load('img\Pk01-U.jpg'),
'D':p.image.load('img\Pk01-D.jpg'),
'L':p.image.load('img\Pk01-L.jpg'),
'R':p.image.load('img\Pk01-R.jpg')}
#方向
self.direction='U'
#根据当前图片的方向获取图片
self.image=self.images[self.direction]
#根据图片获取区域
self.rect = self.image.get_rect()
#设置区域的left,top
self.rect.left=left
self.rect.top=top
#速度 决定移动的快慢
self.speed = 10
#移动
def move(self):
#判断坦克的方向移动
#如果向左移动
if self.direction == 'L':
self.rect.left -= self.speed
#如果向上移动
if self.direction == 'U' :
self.rect.top -= self.speed
#如果向下移动
if self.direction == 'D':
self.rect.top += self.speed
#r如果向右移动
if self.direction == 'R':
self.rect.left += self.speed
def displayTank(self):
self.image=self.images[self.direction]
MainGame.window.blit(self.image,self.rect)
MainGame().startGame()
老师我在对坦克左右移动时,无法改变方向,只能朝上来左右移动,而当我按下下键时就可以使坦克朝下