【发布时间】:2017-12-10 02:26:25
【问题描述】:
我的程序有问题。我正在尝试编写战舰游戏,问题就在这里:
class Battleship(object):
def __init__(self):
pygame.init()
pygame.display.set_caption('battleship')
self.gameDisplay = pygame.display.set_mode((DISPLAYWIDTH, DISPLAYHEIGHT))
self.clock = pygame.time.Clock()
class Tile(object):
def __init__(self):
self.occupied = False
self.shipID = 0
self.playerID = 0
def setOccupied(self, occupied):
self.occupied = occupied
def setShipID(self, shipID):
self.shipID = shipID
def setPlayerID(self, pID):
self.playerID = pID
class Board:
shipSizes = [1, 2, 3]
sizeX = 25
sizeY = 25
def __init__(self, playerID):
self.playerID = playerID
self.playerShips = []
for i in range(0, len(self.shipSizes)):
self.playerShips.append(Ship(i, self.shipSizes[i]))
self.tiles = [[Tile() for i in range(self.sizeX)] for j in range(self.sizeY)]
def drawBoard(self):
x = 0
y = 0
for row in self.visual:
for col in row:
pygame.draw.rect(Battleship().gameDisplay, black, (x, y, CASILLA, CASILLA), LINEWIDTH)
x = x + CASILLA
y = y + CASILLA
x=0
我没有收到任何错误,但是该功能无法正常工作,只显示黑屏,检查了其他所有内容,问题肯定出在那部分。
编辑,我添加了战列舰
【问题讨论】:
-
代码不足,无法找到错误。请提供minimal, complete and verifiable example。
-
您是否在终端/控制台中运行它以查看错误?
-
使用
print()来检查你用来绘制的变量中的值——比如self.visual。顺便说一句:你为什么每次画rect()时都创建Battleship()? -
感谢您的宝贵时间,我应该发布整个代码吗?另一件事是,我 100 % 确定我的代码中的问题在于绘图板功能,因为我测试了整个程序,其他一切正常
-
furas,是的,我运行了它,没有错误,它只是冻结
标签: python python-2.7 pygame