import pygame
import random
czarny = (0,0,0)
pygame.init()
ekran = pygame.display.set_mode([800,600])
pygame.display.set_caption("Eksplozja buziek")
mysz_w_dol = False
dalej = True
licznik = pygame.time.Clock()
rys = pygame.image.load("Buzka_obrazek.bmp")
kolor_kluczowy = rys.get_at((0,0))
rys.set_colorkey(kolor_kluczowy)
lista_duszkow = pygame.sprite.Group()
class buzka(pygame.sprite.Sprite):
pos = (0,0)
xvel = 1
yvel = 1
scale = 100#,pos,xvel,yvel
def __init__(self,pos,xvel,yvel):# __init_ służy do twrzenia definicji która zostanie uruchomiona razem z urochemieniem klassy, a to co w nawiasie służy do przekonwertowania tych zmiennych do funckji
pygame.sprite.Sprite.__init__(self)
self.image = rys
self.rect = self.image.get_rect
self.pos = pos
self.scale = random.randrange(10,100)
self.image = pygame.transform.scale(self.image,(self.scale,self.scale))
self.rectx = pos[0] - self.scale/2
self.recty = pos[1] - self.scale/2
self.xvel = xvel
self.yvel = yvel
def udpate(self):
self.rectx += self.xvel
self.recty += self.ywel
if self.rectx <= 0 or self.rectx > ekran.width() - self.scale:
self.xvel = -self.xvel
if self.recty <= 0 or self.recty > ekran.height() - self.scale:
self.yvel = -self.yvel
while dalej:
for event in pygame.event.get():
if event.type == pygame.QUIT:
dalej = False
if event.type == pygame.MOUSEBUTTONDOWN:
if pygame.mouse.get_pressed()[0]:
mysz_w_dol = True
elif pygame.mouse.get_pressed()[1]:
pos = pgame.mouse.get_pos()
klikniete_buzki = [s for s in lista_duszkow if s.rect.callidepoint(pos)]
lista_duszkow.remove(klikniete_duszki)
if event.type == pygame.MOUSEBUTTONUP:
mysz_w_dol = False
ekran.fill(czarny)
lista_duszkow.update()
lista_duszkow.draw(ekran)
licznik.tick(60)
pygame.display.update()
if mysz_w_dol:
szybkosc_x = random.randint(-5,5)
szybkosc_y = random.randint(-5,5)
nowa_buzka = buzka(pygame.mouse.get_pos(),szybkosc_x,szybkosc_y)
lista_duszkow.add(nowa_buzka)
pygame.quit()
Mam problem z tym kodem(jak coś mam pygame, bo testowałem z innymi kodami). Jak uruchamiam to pokazuje mi się coś takiego:
Traceback (most recent call last):
File "C:\Users\User\Desktop\Uczymy dzieci programowania\Rozdział 9 - Komunikacja z użytkownikiem(wejdź do gry)\Rozdział 9.6(Eksplozja uśmiechniętych buziek i przebijanie jej błąd).py", line 52, in <module>
lista_duszkow.draw(ekran)
File "C:\Python27\lib\site-packages\pygame\sprite.py", line 409, in draw
self.spritedict[spr] = surface_blit(spr.image, spr.rect)
TypeError: invalid destination position for blit
Proszę o pomoc i z góry dziękuje