第一次使用 pygamer 有谁知道如何将超过 1 个 Sprite 副本添加到您的窗口中?
class Spriterock:
def __init__(self,x,y,width,height):
self.x=x
self.y=y
self.width=width
self.height=height
self.i2 = pygame.image.load("rocks.png")
def render(self):
window.blit(self.i2, (self.x,self.y))
Sprite2=Spriterock(random.randrange(150,350),random.randrange(100,400),62,47)
我正在尝试制作更多的石头
编辑
你们知道如何将相同的属性应用于克隆吗?我正在使用
def detectCollisionsrock(x1,y1,w1,h1,x2,y2,w2,h2):
if (x2+w2>=x1>=x2 and y2+h2>=y1>=y2):
return True
elif (x2+w2>=x1+w1>=x2 and y2+h2>=y1>=y2):
return True
elif (x2+w2>=x1>=x2 and y2+h2>=y1+h1>=y2):
return True
elif (x2+w2>=x1+w1>=x2 and y2+h2>=y1+h1>=y2):
return True
else:
return False
collisionsrock=detectCollisionsrock(Sprite1.x,Sprite1.y,Sprite1.width,Sprite1.height,rock.x,rock.y,rock.width,rock.height,)
最佳答案
您当前的代码示例只会创建一 block 岩石,因为您只创建了 Spriterock
类的一个实例。这一行:
Sprite2=Spriterock(random.randrange(150,350),random.randrange(100,400),62,47)
在代码示例中创建第一个且唯一实例。该行上方的代码仅包含指定 Spriterock 如何工作的类定义,但并未实际创建 Spriterock。
要创建多个实例,您应该执行以下操作:
rock1 = Spriterock(random.randrange(150,350),random.randrange(100,400),62,47)
rock2 = Spriterock(random.randrange(150,350),random.randrange(100,400),62,47)
rock1.render()
rock2.render()
pygame.display.update()
关于python - 使用 pygame 进行 Sprite 副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20941297/