0
我是Python和Pygame的新手。我想在pygame中有一個屏幕,並且獨立地移動相同圖像的多個副本。我試圖把它寫成一個類,然後在while
循環內調用它的實例,但它不起作用。有人可以展示我如何使用class
基本上做這樣的事情?Pygame獨立移動圖像在屏幕上
我是Python和Pygame的新手。我想在pygame中有一個屏幕,並且獨立地移動相同圖像的多個副本。我試圖把它寫成一個類,然後在while
循環內調用它的實例,但它不起作用。有人可以展示我如何使用class
基本上做這樣的事情?Pygame獨立移動圖像在屏幕上
我試圖把一切都簡單
例子:
import pygame
pygame.init()
WHITE = (255,255,255)
BLUE = (0,0,255)
window_size = (400,400)
screen = pygame.display.set_mode(window_size)
clock = pygame.time.Clock()
class Image():
def __init__(self,x,y,xd,yd):
self.image = pygame.Surface((40,40))
self.image.fill(BLUE)
self.x = x
self.y = y
self.x_delta = xd
self.y_delta = yd
def update(self):
if 0 <= self.x + self.x_delta <= 360:
self.x += self.x_delta
else:
self.x_delta *= -1
if 0 <= self.y + self.y_delta <= 360:
self.y += self.y_delta
else:
self.y_delta *= -1
screen.blit(self.image,(self.x,self.y))
list_of_images = []
list_of_images.append(Image(40,80,2,0))
list_of_images.append(Image(160,240,0,-2))
done = False
while not done:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
screen.fill(WHITE)
for image in list_of_images:
image.update()
pygame.display.update()
clock.tick(30)
pygame.quit()
每個圖像都可以單獨從列表中通過簡單地改變Image.x/y以什麼叫搬到你想
好!謝謝。 – amirteymuri
示例 - 使用蝴蝶班的許多蝴蝶:http://pastebin.com/p2KAfsHH。它使用pygame.Surface,但它可以是圖像。 – furas
謝謝你的例子。 '(event.pos)'在你的'event_handle'定義中做了什麼?我沒有在名爲'pos'的pygame中找到任何東西,這是從哪裏來的? – amirteymuri
'事件'來自'事件'循環。不同的事件有不同的領域。鼠標事件有'event.pos' - 它是鼠標的位置。查看http://www.pygame.org/docs/ref/event.html上的所有字段(請參閱帶黃色背景的列表) – furas