• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Mam problem z kodem w pythonie(pygame)

Object Storage Arubacloud
0 głosów
180 wizyt
pytanie zadane 23 maja 2020 w Python przez Mikisali Początkujący (320 p.)
edycja 24 maja 2020 przez Mikisali
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

1 odpowiedź

0 głosów
odpowiedź 23 maja 2020 przez DawidK Nałogowiec (37,910 p.)

Błąd jest w tej linijce

lista_duszkow.remowe(klikniete_duszki)

remove()

komentarz 24 maja 2020 przez Mikisali Początkujący (320 p.)
Rzeczywiście dziękuje, ale błąd nie znika. Z tego co wyświetla to coś z tym fragmentem: lista_duszkow.draw(ekran).

Podobne pytania

+1 głos
1 odpowiedź 444 wizyt
pytanie zadane 24 maja 2020 w Python przez Mikisali Początkujący (320 p.)
0 głosów
1 odpowiedź 161 wizyt
pytanie zadane 4 sierpnia 2020 w Systemy operacyjne, programy przez lubie internet Użytkownik (780 p.)
+1 głos
1 odpowiedź 275 wizyt
pytanie zadane 20 czerwca 2023 w Python przez Bondrusiek Maniak (61,370 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...