老师请问为什么会出现这样
import pygame as pg
import time
import random
screen_width=700
screen_height=500
bgcolor=pg.Color(0,0,0)
rcolor=pg.Color(255,0,0)
class MainGame:
window=None
my_tank=None
enemy_tankList=[]
enemy_tankCount=5
def __init__(self):
pass
#开始游戏
def startGame(self):
#加载主窗口
#初始化窗口
pg.display.init()
#设置窗口的显示
MainGame.window=pg.display.set_mode([screen_width,screen_height])
#初始化我的坦克
MainGame.my_tank = Tank(350, 250)
#初始化敌方坦克
self.createEnemyTank() #!!!就是这个地方报错,说类里找不到这个函数
#设置窗口的标题
pg.display.set_caption("坦克大战1.02")
while True:
time.sleep(0.02)
#窗口填充色
MainGame.window.fill(bgcolor)
#获取事件
self.getEvent()
#绘制文字
MainGame.window.blit(self.getTextSurface("敌方剩余坦克数量%d"%6),(5,5))
MainGame.my_tank.displayTank()
#展示敌方坦克
self.biltenemyTank()
#使坦克移动
if not MainGame.my_tank.stop:
MainGame.my_tank.move()
pg.display.update()
#定义敌方坦克的方法
def creatEnemyTank(self):
top=100
for i in range (MainGame.enemy_tankCount):
left=random.randint(0,600)
speed=random.randint(1,4)
enemy=EnemyTank(left, top, speed)
MainGame.enemy_tankList.append(enemy)
#显示我方坦克
#循环遍历敌方坦克列表,展示敌方坦克
def biltenemyTank(self):
for enemyTank in MainGame.enemy_tankList:
enemyTank.displayTank()
#结束游戏
def endGame(self):
print("谢谢使用")
exit()
#左上角绘制
def getTextSurface(self,text):
#初始化字体
pg.font.init()
#获取字体对象
font=pg.font.SysFont("kaiti",18)
#绘制文字
textSurface=font.render(text,True,rcolor)
return textSurface
#获取事件
def getEvent(self):
#获取所有事件
eventList=pg.event.get()
#遍历事件
for event in eventList:
#判断按下是什么键
if event.type==pg.QUIT:
self.endGame()
#键盘的按向 上下左右
if event.type==pg.KEYDOWN:
if event.key==pg.K_LEFT:
MainGame.my_tank.stop = False
MainGame.my_tank.direction="L"
#MainGame.my_tank.move()
print("xiangzuo")
elif event.key==pg.K_RIGHT:
MainGame.my_tank.stop = False
MainGame.my_tank.direction = "R"
#MainGame.my_tank.move()
print("xiang you")
elif event.key==pg.K_UP:
MainGame.my_tank.stop = False
MainGame.my_tank.direction = "U"
#MainGame.my_tank.move()
print("xiangshang")
elif event.key==pg.K_DOWN:
MainGame.my_tank.stop = False
MainGame.my_tank.direction = "D"
#MainGame.my_tank.move()
print("xiang xia")
elif event.key== pg.K_SPACE:
print("发射子弹")
#松开方向键 让坦克停下
if event.type==pg.KEYUP:
if event.key==pg.K_UP or event.key==pg.K_DOWN or event.key==pg.K_LEFT or event.key==pg.K_RIGHT:
MainGame.my_tank.stop=True
class Tank:
#距离左边left,距离上边top,坦克的展示初始位置,距离左边和上边
def __init__(self,left,top):
#"保存加载的图片"
self.images={"U":pg.image.load("p1tankU.gif"),
"D": pg.image.load("p1tankD.gif"),
"L": pg.image.load("p1tankL.gif"),
"R": pg.image.load("p1tankR.gif" )}
self.direction="U"
self.image=self.images[self.direction]
self.rect=self.image.get_rect()
self.rect.top=top
self.rect.left=left
self.speed=1
self.stop=True
#移动
def move(self):
#判断方向
if self.direction=="L":
if self.rect.left > 0:
self.rect.left-=self.speed
elif self.direction=="R":
if self.rect.left+self.rect.height<screen_width:
self.rect.left += self.speed
elif self.direction=="U":
if self.rect.top>0:
self.rect.top -= self.speed
elif self.direction=="D":
if self.rect.top+ self.rect.height < screen_height:
self.rect.top += self.speed
#射击
def shot(self):
pass
#展示
def displayTank(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,left,top,speed):
self.images={"U":pg.image.load("enemy1U.gif"),
"D": pg.image.load("enemy1D.gif"),
"L": pg.image.load("enemy1L.gif"),
"R": pg.image.load("enemy1R.gif" )}
self.direction=self.randDirection()
self.image=self.images[self.direction]
self.rect=self.image.get_rect()
self.rect.left=left
self.rect.top=top
self.rect.left=left
self.speed=speed
self.flag=True
def randDirection(self):
num=rand.randint(1,4)
if num==1:
return "U"
elif num==2:
return "D"
elif num==3:
return "L"
elif num==4:
return "R"
class Bullte():
def __init__(self):
pass
#移动
def move(self):
pass
#zhanshi
def displayBullet(self):
pass
class Wall():
def __init(self):
pass
#展示墙壁的方法
def displayWall(self):
pass
class Explore():
def __init__(self):
pass
#展示爆炸的方法
def displayExplore(self):
pass
class Music():
def __init__(self):
pass
#播放音乐的方法
def play(self):
pass
if __name__=='__main__':
MainGame().startGame()