У меня возникли проблемы с попыткой столкновения (и нескольких других проблем) с моими спрайтами в 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()
У меня также есть другая проблема, когда некоторые из моих маленьких вилок не зацикливаются.Я не слишком уверен, почему это происходит также.Любая помощь приветствуется.