[英]How to move an image on pygame?
我是 pygame 的新手。 我之前在 Python 上編碼過,但從未在 pygame 上編碼過。 我制作了一個代碼,當單擊某些鍵時會播放聲音,現在我嘗試在每次用戶用鼠標單擊時使圖像移動。
import pygame, os, sys
pygame.init()
screen = pygame.display.set_mode((1300,1300))
screen.fill((250,250,250))
img = pygame.image.load(os.path.join(sys.path[0],"fonddecran.v1.jpg"))
screen.blit(img, (0, 0))
pygame.display.flip()
barrel=pygame.image.load(os.path.join(sys.path[0],"barrel-man.jpg"))
pygame.display.flip()
pygame.mixer.init()
it = true
while it:
for event in pygame.event.get():
if event.type == pygame.QUIT:
it=False
elif event.type == pygame.MOUSEBUTTONDOWN:
if event.button == 3:
pygame.mixer.music.load(os.path.join(sys.path[0],"Mi-mineur.mp3"))
pygame.mixer.music.play()
elif event.button == 1:
screen.blit(barrel,event.pos)
pygame.display.flip()
elif event.type == pygame.KEYUP:
if event.key == ord('b'):
pygame.mixer.music.load(os.path.join(sys.path[0],"Mi-mineur.mp3"))
pygame.mixer.music.play()
pygame.quit()
不幸的是,圖像每次只出現一次。 我怎樣才能刪除它,讓它看起來像已經移動了?
為了能夠“移動”圖像,您必須在每一幀中重新繪制場景。 添加一個變量來存儲圖像的 position。 單擊鼠標時將變量更改為鼠標 position:
import pygame, os, sys
pygame.init()
screen = pygame.display.set_mode((1300,1300))
img = pygame.image.load(os.path.join(sys.path[0],"fonddecran.v1.jpg"))
barrel=pygame.image.load(os.path.join(sys.path[0],"barrel-man.jpg"))
pygame.mixer.init()
barrel_pos = None
it = True
while it:
for event in pygame.event.get():
if event.type == pygame.QUIT:
it=False
elif event.type == pygame.MOUSEBUTTONDOWN:
if event.button == 3:
pygame.mixer.music.load(os.path.join(sys.path[0],"Mi-mineur.mp3"))
pygame.mixer.music.play()
elif event.button == 1:
barrel_pos = event.pos
elif event.type == pygame.KEYUP:
if event.key == ord('b'):
pygame.mixer.music.load(os.path.join(sys.path[0],"Mi-mineur.mp3"))
pygame.mixer.music.play()
screen.fill((250,250,250))
screen.blit(img, (0, 0))
if barrel_pos:
screen.blit(barrel, barrel_pos)
pygame.display.flip()
pygame.quit()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.