我在pygame中尝试与我的精灵进行碰撞(以及其他一些问题)时遇到了一些麻烦 . 我想要做的是当一个小叉子(精灵被命名为mini1,mini2等)击中马铃薯时,一颗心应该消失 . 我甚至不确定如何开始碰撞 . 当我查找它时,提到使用一个类,但我没有学到,所以我没有使用该方法 .

这是我到目前为止:

import pygame, sys
from pygame_functions import * 

pygame.mixer.pre_init(44100,16,2,4096)
pygame.init()

width = 1200
height = 750
screen = pygame.display.set_mode((480, 320))
pygame.display.set_caption('Space Potato')
screenSize(width, height)                            
setBackgroundImage("space.bmp")              
pygame.mixer.music.load("bgmusic.wav")

pygame.mixer.music.set_volume(0.5)
pygame.mixer.music.play(-1)

door = makeSprite("door.png")
moveSprite(door, 570, 30)
showSprite(door)

potato = makeSprite("potato.bmp") 
moveSprite(potato, 550, 650)                    
showSprite(potato)

mini1 = makeSprite("minifork.bmp")
showSprite(mini1)
mini1x = 590
mini1y = 150

mini2 = makeSprite("minifork.bmp")
showSprite(mini2)
mini2x = 590
mini2y = 150

mini3 = makeSprite("minifork.bmp")
showSprite(mini3)
mini3x = 590
mini3y = 150

mini4 = makeSprite("minifork.bmp")
showSprite(mini4)
mini4x = 590
mini4y = 150

mini5 = makeSprite("minifork.bmp")
showSprite(mini5)
mini5x = 590
mini5y = 150

mini6 = makeSprite("minifork.bmp")
showSprite(mini6)
mini6x = 590
mini6y = 150

mini7 = makeSprite("minifork.bmp")
showSprite(mini7)
mini7x = 590
mini7y = 150

mini8 = makeSprite("minifork.bmp")
showSprite(mini8)
mini8x = 590
mini8y = 150

mini9 = makeSprite("minifork.bmp")
showSprite(mini9)
mini9x = 590
mini9y = 150

mini10 = makeSprite("minifork.bmp")
showSprite(mini10)
mini10x = 590
mini10y = 150

mini11 = makeSprite("minifork.bmp")
showSprite(mini11)
mini11x = 590
mini11y = 150

fork = makeSprite("fork.bmp")
moveSprite(fork, 570, 100)
showSprite(fork)

heart1 = makeSprite("heart.bmp")
moveSprite(heart1, 10, 10)
showSprite(heart1)

heart2 = makeSprite("heart.bmp")
moveSprite(heart2, 60, 10)
showSprite(heart2)

heart3 = makeSprite("heart.bmp")
moveSprite(heart3, 110, 10)
showSprite(heart3)


xPos = 550                                     
yPos = 650 
xSpeed = 0 
ySpeed = 0
moveSprite(potato,xPos, yPos)

while True:
    mini1y += 10
    if mini1y == height - 10:
        mini1y = 150
        mini1x = 590
    moveSprite(mini1, mini1x, mini1y)

    mini2x -= 10
    mini2y += 5
    if mini2y == height - 10:
        mini2y = 150
        mini2x = 590
    moveSprite(mini2, mini2x, mini2y)

    mini3x += 2
    mini3y += 10
    if mini3y == height - 10:
        mini3y = 150
        mini3x = 590
    moveSprite(mini3, mini3x, mini3y)

    mini4x += 15
    mini4y += 2
    if mini4y == height - 10:
        mini4y = 150
        mini4x = 590
    moveSprite(mini4, mini4x, mini4y)

    mini5x -= 5
    mini5y += 10
    if mini5y == height - 10:
        mini5y = 150
        mini5x = 590
    moveSprite(mini5, mini5x, mini5y)

    mini6x -= 10
    mini6y += 7
    if mini6y == height - 10:
        mini6y = 150
        mini6x = 590
    moveSprite(mini6, mini6x, mini6y)

    mini7x += 10
    mini7y -= 2
    if mini7y == height - 10:
        mini7y = 150
        mini7x = 590
    moveSprite(mini7, mini7x, mini7y)

    mini8x -= 5
    mini8y += 10
    if mini8y == height - 10:
        mini8y = 150
        mini8x = 590
    moveSprite(mini8, mini8x, mini8y)

    mini9x += 5
    mini9y -= 10
    if mini9y == height - 10:
        mini9y = 150
        mini9x = 590
    moveSprite(mini9, mini9x, mini9y)

    mini10x -= 10
    mini10y -= 7
    if mini10x == width - 10:
        mini10y = 150
        mini10x = 590
    moveSprite(mini10, mini10x, mini10y)

    mini11x -= 10
    mini11y -= 7
    if mini11x == width - 10:
        mini11y = 150
        mini11x = 590
    moveSprite(mini11, mini11x, mini11y)

    if keyPressed("up"):
        transformSprite(potato, 0, 1)
        yPos -= 7
    elif keyPressed("down"):
        transformSprite(potato, 0, 1)
        yPos += 7
    elif keyPressed("right"):
        transformSprite(potato, 0, 1)
        xPos += 7
    elif keyPressed("left"):
        transformSprite(potato, 0, 1)
        xPos -= 7
    moveSprite(potato, xPos, yPos)

    tick(30)


endWait()

我还有另一个问题,我的一些小叉子不会循环 . 我不太确定为什么会发生这种情况 . 任何帮助表示赞赏 .