第一次pygamer这里有没有人知道如何在窗口中添加超过1个精灵副本?
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,)
答案 0 :(得分:1)
您当前的代码示例只会创建一个摇滚,因为您只创建了Spriterock
类的一个实例。这一行:
Sprite2=Spriterock(random.randrange(150,350),random.randrange(100,400),62,47)
在代码示例中创建第一个和仅实例。该行上方的代码只包含类定义,该类定义指定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()