如何在 python 中使用 for 循环定义多个 class 对象?
How can I define multiple class objects with a for loop in python?
所以我正在用 pygame 制作一个基于图块的基本游戏。我需要在屏幕上渲染一个 20x20 的地砖网格。我希望每个图块都是 class 的对象,因为玩家将能够改变环境。
我需要将图块对象存储在二维数组中。我的问题是使用 for 循环定义所有对象,每个对象都有不同的名称和属性。
在 pygame 中这甚至可以做到或有更好的渲染图块的方法吗?
这是 class,显示其他图块渲染代码毫无意义,因为它甚至无法远程工作:
visGround = [[]]
class groundTile(object):
def __init__(self, tileType, act_x, act_y, game_x, game_y):
self.tileType = tileType
self.act_x = act_x
self.act_y = act_y
self.game_x = game_x
self.game_y = game_y
提前致谢!
这应该可以满足您的需求,
gridHeight = 20
gridWidth = 20
visGround = []
class groundTile(object):
def __init__(self, tileType, act_x, act_y, game_x, game_y):
self.tileType = tileType
self.act_x = act_x
self.act_y = act_y
self.game_x = game_x
self.game_y = game_y
for i in range(gridHeight):
visGround.append([])
for j in range(gridWidth):
visGround[i].append(groundTile('Title Type', 'Act X', 'Act Y', j, i))
print(visGround)
您可以调整顶部网格的大小,它会改变 2 个数组的大小。我将 i 和 j 放在游戏 x 和 y 中,假设它们代表网格上的位置。
所以我正在用 pygame 制作一个基于图块的基本游戏。我需要在屏幕上渲染一个 20x20 的地砖网格。我希望每个图块都是 class 的对象,因为玩家将能够改变环境。
我需要将图块对象存储在二维数组中。我的问题是使用 for 循环定义所有对象,每个对象都有不同的名称和属性。
在 pygame 中这甚至可以做到或有更好的渲染图块的方法吗?
这是 class,显示其他图块渲染代码毫无意义,因为它甚至无法远程工作:
visGround = [[]]
class groundTile(object):
def __init__(self, tileType, act_x, act_y, game_x, game_y):
self.tileType = tileType
self.act_x = act_x
self.act_y = act_y
self.game_x = game_x
self.game_y = game_y
提前致谢!
这应该可以满足您的需求,
gridHeight = 20
gridWidth = 20
visGround = []
class groundTile(object):
def __init__(self, tileType, act_x, act_y, game_x, game_y):
self.tileType = tileType
self.act_x = act_x
self.act_y = act_y
self.game_x = game_x
self.game_y = game_y
for i in range(gridHeight):
visGround.append([])
for j in range(gridWidth):
visGround[i].append(groundTile('Title Type', 'Act X', 'Act Y', j, i))
print(visGround)
您可以调整顶部网格的大小,它会改变 2 个数组的大小。我将 i 和 j 放在游戏 x 和 y 中,假设它们代表网格上的位置。