簡體   English   中英

如何在 python 中使用 for 循環定義多個 class 對象?

[英]How can I define multiple class objects with a for loop in python?

所以我正在用 pygame 制作一個基於瓷磚的基本游戲。 我需要在屏幕上渲染一個 20x20 的地磚網格。 我希望每個圖塊都是 object 的 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 arrays 的大小。 我在游戲 x 和 y 中放置了 i 和 j,假設它們代表網格上的位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM