Kaltaisesi lukijat auttavat tukemaan MUO: ta. Kun teet ostoksen käyttämällä sivustollamme olevia linkkejä, voimme ansaita kumppanipalkkion. Lue lisää.

Oletko koskaan halunnut luoda jännittävän pelin käyttämällä Pythonin PyGame-kirjastoa, mutta oletko ajautunut ajanhallintaan? Jos näin on, et ole yksin.

Aika on yksi pelikehityksen kriittisimmistä osista, ja ajan toiminnan ymmärtäminen PyGamessa on välttämätöntä kiinnostavien ja menestyvien pelien luomiseksi. PyGame tarjoaa useita hyödyllisiä toimintoja ja moduuleja, joiden avulla voit hallita pelien aikaa.

Yksinkertaisen pelin luominen

Aloita luomalla yksinkertainen peli, jossa suorakulmio liikkuu oikealle. Aloittaa, asenna pip laitteellesi ja käytä alla olevaa komentoa PyGame-moduulin asentamiseen:

pip asennus pygame

Löydät kaikki koodiesimerkit tästä GitHub repo.

Asennuksen jälkeen tuo PyGame-moduuli. Luo sitten näyttö, jonka koko on 800 x 600 ja jonka taustaväri on valkoinen, ja lisää suora objekti. Koodin pitäisi näyttää suunnilleen tältä:

instagram viewer
tuonti pygame
pygame.init()
näyttö = pygame.display.set_mode((800, 600))
tausta = pygame. Pinta (screen.get_size())
background.fill((255, 255, 255))
rect = pygame. Rect(0, 0, 20, 20)

Käytä sen jälkeen while-silmukkaa pitääksesi pelin käynnissä ja pidä suora kohde liikkumassa oikealle, kunnes se saavuttaa näytön loppuun.

juoksu = Totta

sillä aikaa käynnissä:
varten tapahtuma sisään pygame.event.get():
jos event.type == pygame. LOPETTAA:
juoksu = Väärä

rect.x += 1

jos rect.x > 780:
rect.x = 0

screen.blit (tausta, (0, 0))
pygame.draw.rect (näyttö, (0, 0, 0), oikein)
pygame.display.update()

Voit myös lisätä käyttäjän syötteitä ja törmäyksiä pelissä. Alla on tulos:

PyGamen aikamoduulin yleiskatsaus

Voit hallita aikaa tässä pelissä käyttämällä pygame.time moduuli. Tämä moduuli tarjoaa useita hyödyllisiä ominaisuuksia, mukaan lukien a Kello objekti menetelmillä, kuten get_tiks(), odota(), ja viive(). Näiden toimintojen avulla voit helposti hallita pelisi aikaa.

Kelloobjektin luominen ajan seurantaa varten

PyGamessa voit käyttää Kello-objektia ajan seuraamiseen. Luodaksesi kellon, käytä seuraavaa koodiriviä:

kello = pygame.time. Kello()

Tämän Kello-objektin avulla voit nyt seurata pelisi aikaa. Kello-objektiin liittyy myös useita muita hyödyllisiä toimintoja, kuten:

  • get_time(): Tämän toiminnon avulla voit hakea kunkin pelin kehyksen ajan. Voit käyttää tätä toimintoa lisäämällä seuraavan koodirivin while-silmukan jälkeen:
    aika = kello.get_time()
    Lisää tekstiobjekti, joka näyttää kuluneen ajan:
    font = pygame.font. SysFont("Arial", 18)
    text = font.render("Kesätty aika: {} ms".format (aika), Totta, (0, 0, 0))
    screen.blit (teksti, (0, 0))
  • puutiainen(): Käytä tätä toimintoa asettaaksesi pelin kuvanopeuden. Oletusarvoisesti kuvanopeudeksi on asetettu 60 FPS. Aseta se 30 FPS: ään lisäämällä seuraava koodirivi:
    kello.tick(30)
  • get_fps(): Voit hakea pelin nykyisen kuvanopeuden käyttämällä get_fps. Jos haluat käyttää tätä toimintoa, lisää vain seuraava koodirivi:
    fps = kello.get_fps()
    Voit lisätä tekstiobjektin näyttämään kuvanopeuden:
    font = pygame.font. SysFont("Arial", 18)
    text = font.render('FPS: {}'.formaatti (fps), Totta, (0, 0, 0))
    screen.blit (teksti, (0, 20))
  • tick_busy_loop(): Tämän funktion avulla voit laskea, kuinka monta millisekuntia on kulunut viimeisestä kutsusta puutiainen() toiminto. Voit käyttää sitä lisäämällä seuraavan koodirivin:
    clock.tick_busy_loop(30)

Ajan saaminen get_ticksillä

The get_tiks() Funktio palauttaa ajan millisekunteina PyGame-alustuksen jälkeen. Käytä tätä toimintoa lisäämällä seuraava koodirivi:

time_elapsed = pygame.time.get_ticks()

Lisää tekstiobjekti, joka näyttää kuluneen ajan:

font = pygame.font. SysFont("Arial", 18)
text = font.render(Kulunut aika: {} ms.format (aika_kulunut), Totta, (0, 0, 0))
screen.blit (teksti, (0, 40))

Voit käyttää kulunutta aikaa toteuttaaksesi aikaan perustuvia pelielementtejä, kuten tehostuksia, jotka kestävät tietyn ajan. Voit esimerkiksi toteuttaa käynnistyksen, joka lisää suoran kohteen nopeutta 5 sekunniksi:

jos kulunut aika / 5000 > 0:
rect.x += 5

Alla on tulos:

Pelin keskeyttäminen Odotus- ja viivetoimintojen käyttäminen

PyGame tarjoaa myös kaksi toimintoa, joilla voit keskeyttää pelin tietyksi ajaksi: odota toiminto ja viive toiminto.

Käyttääksesi odota funktio, lisää vain seuraava koodirivi while-silmukkaan:

pygame.time.wait(1000)

Tämä keskeyttää pelin 1000 millisekunniksi (1 sekunniksi). Käyttääksesi viive funktio, lisää vain seuraava koodirivi while-silmukkaan:

pygame.time.delay(1000)

Tämä viivästyttää pelin seuraavaa ruutua 1000 millisekuntia (1 sekunti).

Erot odottamisen ja viivytyksen välillä

Välillä on muutamia eroja odota ja viive toimintoja. The odota toiminto nukkuu prosessin jakaakseen prosessorin muiden ohjelmien kanssa. The viive toiminto käyttää prosessoria tehdäkseen viiveestä tarkemman. Tämä tarkoittaa, että viive toiminto vaatii enemmän prosessorin tehoa kuin odota toiminto ja sopii peleihin, jotka vaativat tarkan ajoituksen.

Tapahtuman luominen set_timer-sovelluksella

Voit käyttää set_timer() toimintoa luodaksesi tapahtuman, joka käynnistyy tietyn ajan kuluttua.

PyGamen tapahtumat ovat objekteja, jotka sisältävät tietoja käyttäjän syötteistä tai ohjelman luomista viesteistä. Käytä tätä toimintoa luomalla mukautettu tapahtuma ja lisäämällä seuraava koodirivi:

pygame.time.set_timer (MUKAUTETTU_TAPAHTUMA, 1000)

Tämä luo tapahtuman, joka käynnistyy 1 000 millisekunnin – 1 sekunnin kuluttua. Voit laukaista erilaisia ​​tapahtumia, kuten hiiren liikettä, näppäimistön syöttöä ja ikkunatapahtumia. Koodisi voi sitten reagoida näihin tapahtumiin sopivimmalla tavalla.

Jos esimerkiksi haluat muuttaa suoran objektin y-akselia 1 sekunnin kuluttua tai kun mukautettu tapahtuma käynnistyy, voit lisätä seuraavan koodirivin:

jos event.type == MUKAUTETTU_TAPAHTUMA:
rect.y += 20

Tällä tavalla voit luoda peliisi helposti aikaan perustuvia tapahtumia, joiden avulla voit luoda mielenkiintoisen ja haastavan pelin.

Paranna pelin ohjaimia ajan myötä

Aikaohjauksen avulla voit parantaa pelin ohjaimia. Voit käyttää aikaa kiihdytys-, hidastus- ja jopa pelin päättymisehtojen toteuttamiseen. Monet pelit esittelevät luotiajan käsitteen, jossa toiminta hidastuu lyhyeksi ajaksi.

PyGamen ajanhallintatoimintojen avulla voit helposti toteuttaa tällaisia ​​ominaisuuksia – ja paljon muuta – omissa peleissäsi.