我是Python的新手,现在我想创建一个叫做 Pong
一切看起来都很好,但不幸的是,一旦球碰到砖头,我就不能从2D-Array List中删除一个特定的元素。
这是我的代码。
class Brick:
size = 5
bricks = [[0] * size for i in range(size)]
def __init__(self, x, y):
self.x = x
self.y = y
def createBricks(self):
for x in range(self.size):
for y in range(self.size):
self.bricks[x][y] = Brick(x * 70, y * 40)
def draw(self):
for bricks in self.bricks:
for brick in bricks:
rect(brick.x, brick.y, 50, 20)
在下面的方法中,我想删除特定的元素。
#In my main class
def removeBrick():
for elem in brick.bricks:
for _brick in elem:
if ball.touchesBrick(_brick.x, _brick.y):
#Here I want to remove the element
我试了很多方法 移除() 和 脱离 但结果,我无法解决它。
先谢谢你了。
使用for循环只是给你一个元素的副本(所以你不能直接修改它)。要解决这个问题,你应该使用 enumerate
类。
def removeBrick():
for elem in brick.bricks:
for i, _brick in enumerate(elem):
if ball.touchesBrick(_brick.x, _brick.y):
_brick.pop(i)