私はPygameで一致するカードゲームを作ろうとしています.52枚のカードをすべて正しい位置に描画できますが、画像のrectは変更されません。Pygame画像の衝突点を変更する方法
次の方法ですべてのカードの表面を作成します。
def generateGrid():
cardB = pygame.image.load(os.path.join('data', 'back.png'))
for i in range(index):
grid.append(cardB)
grid[i] = pygame.transform.scale(cardB, (85,130))
メインカードのメソッドで次のコードを呼び出してカードをレンダリングします。
generateGrid()
pos = 25
for i in range(index):
print(pos)
if i >0 and i< 14:
r1 = grid[i].get_rect()
r1.move_ip(pos,50)
pos +=95
background.blit(grid[i], r1)
pygame.display.update()
elif i >0 and i<27:
r2 = grid[i].get_rect()
pos -=95
r2.move_ip(pos,195)
background.blit(grid[i], r2)
pygame.display.update()
elif i >0 and i <40:
r3 = grid[i].get_rect()
r3.move_ip(pos,350)
pos +=95
background.blit(grid[i],r3)
pygame.display.update()
elif i >0 and i< 53:
r4 = grid[i].get_rect()
pos -=95
r4.move_ip(pos,500)
background.blit(grid[i],r4)
pygame.display.update()
print("Card", i+1, "rendered")
は最後に、私はマウスが行うことでオーバーホバリングされているカードを探してみてください私のメインループの中で:<rect(0, 0, 85, 130)>
:
for i in range(index):
if grid[i].get_rect().collidepoint(pygame.mouse.get_pos()):
print("Colling with:", i)
else:
pass
私の問題は、すべての面が同じ衝突rectsを持っているということです。各カードのコーディネートに合わせてこれをどのように変更できますか?