1 回答

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊
PyGame 中的單位是像素。您的對(duì)象重疊,因?yàn)榇怪焙退轿恢玫牟町愔挥幸粋€(gè)像素。
imgPos = pygame.Rect((0, 0), (0, 0))
imgPos1 = pygame.Rect((1, 1), (1, 1))
增加對(duì)象的距離并根據(jù)相應(yīng)圖像的大小設(shè)置矩形的大小。例如
imgPos = pygame.Rect((0, 0), img.get_size())
offsetX = img.get_width()
imgPos1 = pygame.Rect((offsetX, 0), img1.get_size())
或者,可以從 by生成pygame.Rect
對(duì)象。矩形的位置必須由關(guān)鍵字參數(shù)設(shè)置:pygame.Surface
get_rect
imgPos?=?img.get_rect(topleft?=?(0,?0)) imgPos1?=?img1.get_rect(topleft?=?(img.get_width(),?0))
如果要選擇要移動(dòng)的圖像,則需要添加一個(gè)變量來(lái)指示當(dāng)前選擇的圖像:
current_image?=?None
單擊圖像時(shí),會(huì)發(fā)生變化current_image
。用于collidepoint()
驗(yàn)證鼠標(biāo)是否單擊了圖像:
if e.type == pygame.MOUSEBUTTONDOWN:
? ? if imgPos.collidepoint(e.pos):
? ? ? ? current_image = 0
? ? elif imgPos1.collidepoint(e.pos):
? ? ? ? current_image = 1
? ? else:?
? ? ? ? current_image = None
移動(dòng)img如果current_image == 0和移動(dòng)img1如果current_image == 1:
if e.type == MOUSEMOTION:
? ? if e.buttons[LeftButton]:
? ? ? ? rel = e.rel
? ? ? ? if current_image == 0:
? ? ? ? ? ? imgPos.x += rel[0]
? ? ? ? ? ? imgPos.y += rel[1]
? ? ? ? elif current_image == 1:
? ? ? ? ? ? imgPos1.x += rel[0]
? ? ? ? ? ? imgPos1.y += rel[1]
import pygame
from pygame.locals import *
pygame.display.init()
screen = pygame.display.set_mode((1143,677 ))
img = pygame.image.load(r"C:\Users\ga-sa\Downloads\As.png")
img1 = pygame.image.load(r"C:\Users\ga-sa\Downloads\03.png")
imgPos = img.get_rect(topleft = (20, 20))
imgPos1 = img1.get_rect(topleft = (60, 20))
current_image = None
LeftButton = 0
while 1:
? ? for e in pygame.event.get():
? ? ? ? if e.type == QUIT:
? ? ? ? ? ? pygame.quit()
? ? ? ? ? ? exit(0)
? ? ? ? if e.type == pygame.MOUSEBUTTONDOWN:
? ? ? ? ? ? if imgPos.collidepoint(e.pos):
? ? ? ? ? ? ? ? current_image = 0
? ? ? ? ? ? elif imgPos1.collidepoint(e.pos):
? ? ? ? ? ? ? ? current_image = 1
? ? ? ? ? ? else:?
? ? ? ? ? ? ? ? current_image = None
? ? ? ? if e.type == MOUSEMOTION:
? ? ? ? ? ? if e.buttons[LeftButton]:
? ? ? ? ? ? ? ? rel = e.rel
? ? ? ? ? ? ? ? if current_image == 0:
? ? ? ? ? ? ? ? ? ? imgPos.x += rel[0]
? ? ? ? ? ? ? ? ? ? imgPos.y += rel[1]
? ? ? ? ? ? ? ? elif current_image == 1:
? ? ? ? ? ? ? ? ? ? imgPos1.x += rel[0]
? ? ? ? ? ? ? ? ? ? imgPos1.y += rel[1]
? ?
? ? screen.fill(0)
? ? screen.blit(img, imgPos)
? ? screen.blit (img1, imgPos1)
? ? pygame.display.flip()
? ? pygame.time.delay(30)
添加回答
舉報(bào)