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

PyGame, pierwsza aplikacja

VPS Starter Arubacloud
0 głosów
251 wizyt
pytanie zadane 19 lipca 2019 w Python przez Patryk01 Obywatel (1,270 p.)

Witam, dzisiaj zacząłem naukę pygame i napotkałem problem przy tworzeniu pierwszej apki. Nie mam pojęcia co zrobiłem źle, mógłby ktoś pomóc? Proszę o wyrozumiałość i oto kod:

import pygame


class Player:

    radius = 10
    x = 20
    y = 500
    vel = 5

    isJump = False
    m = 8
    jump_vel = 5

    def move_left(self):
        self.x -= self.vel

    def move_right(self):
        self.x += self.vel

    def jump(self):
        self.isJump = True

    def update(self):
        if self.isJump:
            if self.jump_vel > 0:
                f = (0.5 * self.m * self.jump_vel ** 2)
            else:
                f = -(0.5 * self.m * self.jump_vel ** 2)

            self.y -= f

            if self.y >= 500:
                self.jump_vel = 5
                self.y = 500
                self.isJump = False


class App:

    windowWidth = 800
    windowHeight = 600

    def __init__(self):
        self.running = True
        pygame.init()
        self.window = pygame.display.set_mode((self.windowWidth, self.windowHeight))
        self.player = Player()
        pygame.display.set_caption("First game ever guys")
        self.execute()

    def quit(self):
        self.running = False
        pygame.quit()

    def execute(self):
        while self.running:

            pygame.time.delay(25)
            keys = pygame.key.get_pressed()
            if keys[pygame.K_ESCAPE]:
                self.quit()

            if keys[pygame.K_RIGHT]:
                self.player.move_right()

            if keys[pygame.K_LEFT]:
                self.player.move_left()

            if keys[pygame.K_SPACE] or keys[pygame.K_UP]:
                self.player.jump()

            self.player.update()

            pygame.draw.circle(self.window, (255, 0, 0), (self.player.x, self.player.y), self.player.radius)
            pygame.display.update()


app = App()

 

1
komentarz 19 lipca 2019 przez profesorek96 Szeryf (91,420 p.)
Chętnie pomożemy, jednak czy mógłbyś nam zdradzić na czym polega problem.
komentarz 19 lipca 2019 przez Patryk01 Obywatel (1,270 p.)
Gdy próbuję to włączyć program się wysypuje (okno się zawiesza i nic nie potrafię zrobić).
1
komentarz 19 lipca 2019 przez profesorek96 Szeryf (91,420 p.)
Masz obsługę zdarzeń ?
komentarz 19 lipca 2019 przez Patryk01 Obywatel (1,270 p.)
nie mam pojęcia co to jest obsługa zdarzeń :p
1
komentarz 20 lipca 2019 przez profesorek96 Szeryf (91,420 p.)

Tutaj masz najprostszy program z biblioteka pygame

import pygame
 
pygame.init()
screen = pygame.display.set_mode((400, 300))
done = False
 
while not done:
        for event in pygame.event.get():
                if event.type == pygame.QUIT:
                        done = True
         
        pygame.display.flip()

Zdarzenie to no jakieś wydarzenie na które ma reagować okno, np. kliknięcie myszka, wciśnięcie klawisza. Jeśli nie dodasz obsługi zdarzeń twój program się zawiesi.

1
komentarz 20 lipca 2019 przez Patryk01 Obywatel (1,270 p.)
O teraz, gdy dodałem obsługę zdarzeń program się nie zawiesił. Co prawda i tak wywaliło zaraz błąd, ale z tym sobie już poradzę. Dzięki wielkie :)

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
0 odpowiedzi 264 wizyt
pytanie zadane 29 stycznia 2023 w Python przez Kubas23 Użytkownik (630 p.)
0 głosów
0 odpowiedzi 194 wizyt
pytanie zadane 27 października 2022 w Python przez Podlasianin Początkujący (400 p.)
0 głosów
1 odpowiedź 583 wizyt
pytanie zadane 6 sierpnia 2019 w Python przez akinhet Nowicjusz (170 p.)

92,454 zapytań

141,262 odpowiedzi

319,090 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...