簡體   English   中英

如何在 pygame 上移動圖像?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM