Satunnaisesti liikkuvat esineet tekevät peleistä jännittävämpiä ja haastavampia. Opi sisällyttämään se Pygame-projekteihisi.
Pygame, suosittu Python-kirjasto pelien kehittämiseen, antaa sinun luoda jännittäviä ja interaktiivisia pelejä helposti. Yksi tapa parantaa Pygame-luomuksiasi on lisätä satunnaisia liikkuvia objekteja. Nämä esineet voivat olla esteitä, vihollisia, lisävoimia tai mitä tahansa, mikä lisää pelimaailmaasi dynaamisuutta.
Luo yksinkertainen peli
Aloita asettamalla Pygamen perusikkuna ja lisäämällä pelaajaobjekti joidenkin alustojen kanssa. Voit myös toteuttaa pelaajan perusliikkeet nuolinäppäimillä tai kosketustulojen avulla.
Tässä artikkelissa käytetty koodi on saatavilla tässä GitHub-arkisto ja sen käyttö on ilmaista MIT-lisenssin alaisena.
Luo uusi tiedosto nimeltä simple-game.py ja lisää peruspelisi koodi.
Lisää useita liikkuvia objekteja
Nyt kun sinulla on yksinkertainen peli, jossa on pelaajaobjekti ja alustat, lisää peliin useita satunnaisia liikkuvia esineitä. Nämä kohteet liikkuvat vaakasuunnassa näytön poikki eri nopeuksilla.
object_width, object_height = 30, 30
object_speed_range = (2, 7)
objects = []defcreate_random_object():
return {
'x': random.randint(0, screen_width - object_width),
'y': random.randint(0, screen_height - object_height),
'speed': random.randint(*object_speed_range)
}for _ in range(5):
objects.append(create_random_object())defdraw_object(obj):
obj_dim = (obj['x'], obj['y'], object_width, object_height)
pygame.draw.rect(screen, WHITE, obj_dim)# Game loop
while running:
screen.fill((0, 0, 0))#... (previous code)
for obj in objects:
obj['x'] += obj['speed']
if obj['x'] > screen_width:
obj['x'] = -object_widthdraw_object(obj)
pygame.display.update()
clock.tick(60)
pygame.quit()
Alla on tulos:
Toteuta satunnainen liikealgoritmi
Tällä hetkellä satunnaiset liikkuvat esineesi liikkuvat vain suorassa vaakaviivassa. Jos haluat tehdä niiden liikkeestä arvaamattomampaa, voit lisätä satunnaisen liikealgoritmin.
# Random Movement Algorithm
defupdate_random_movement(obj):
# Change the direction randomly
if random.random() < 0.01:
obj['speed'] = -obj['speed']# Game loop
while running:
#... (previous code)for obj in objects:
obj['x'] += obj['speed']
if obj['x'] > screen_width:
obj['x'] = -object_widthupdate_random_movement(obj)
draw_object(obj)pygame.display.update()
clock.tick(60)
pygame.quit()
Saa objektit liikkumaan kohti pelaajaa
Pelin monimutkaisuuden lisäämiseksi voit esitellä joitain esineitä, jotka liikkuvat kohti pelaajaa. Voit saavuttaa tämän laskemalla kohteen ja soittimen välisen kulman ja säätämällä kohteen sijaintia vastaavasti.
import math
# Objects Moving Towards Player
defmove_towards_player(obj):
player_center_x = player_x + player_width // 2
player_center_y = player_y + player_height // 2
object_center_x = obj['x'] + object_width // 2
object_center_y = obj['y'] + object_height // 2angle1 = player_center_y - object_center_y
angle2 = player_center_x - object_center_xangle = math.atan2(angle1, angle2)
obj['x'] += obj['speed'] * math.cos(angle)
obj['y'] += obj['speed'] * math.sin(angle)# Game loop
while running:
#... (previous code)for obj in objects:
obj['x'] += obj['speed']
if obj['x'] > screen_width:
obj['x'] = -object_widthmove_towards_player(obj)
draw_object(obj)pygame.display.update()
clock.tick(60)
pygame.quit()
Saa objektit liikkumaan vain, kun pelaaja tulee ympäristöön
Sen sijaan, että kaikki kohteet liikkuisivat alusta alkaen, voit sallia esineiden alkavan liikkua vasta, kun pelaaja saapuu ympäristöönsä.
# Objects Start to Move When Player Enters Surroundings
surrounding_distance = 150defshould_start_moving(obj):
surrounded1 = abs(obj['x'] - player_x) < surrounding_distance
surrounded2 = abs(obj['y'] - player_y) < surrounding_distance
return surrounded1 or surrounded2# Game loop
while running:
#... (previous code)for obj in objects:
if should_start_moving(obj):
obj['x'] += obj['speed']
if obj['x'] > screen_width:
obj['x'] = -object_widthupdate_random_movement(obj)
move_towards_player(obj)draw_object(obj)
pygame.display.update()
clock.tick(60)
pygame.quit()
Törmäysten havaitseminen ja vuorovaikutus
Voit tehdä pelistä entistä kiinnostavamman lisää törmäystunnistus soittimen ja liikkuvien kohteiden välillä. Voit esimerkiksi poistaa kohteen näytöltä, kun soitin törmää siihen.
# Collision Detection and Interaction
defis_collision(obj):condition1 = player_x + player_width > obj['x']
condition2 = player_x < obj['x'] + object_width
condition3 = player_y + player_height > obj['y']
condition4 = player_y < obj['y'] + object_height
return ( condition1 and condition2 and condition3 and condition4)# Game loop
while running:
#... (previous code)for obj in objects:
if should_start_moving(obj):
obj['x'] += obj['speed']
if obj['x'] > screen_width:
obj['x'] = -object_widthupdate_random_movement(obj)
move_towards_player(obj)if is_collision(obj):
objects.remove(obj)draw_object(obj)
pygame.display.update()
clock.tick(60)
pygame.quit()
Sisältää lisäominaisuuksia
Satunnaisten liikkuvien objektien lisääminen voi toimia perustana erilaisten jännittävien ominaisuuksien toteuttamiselle Pygamessasi. Tässä on joitain lisäideoita pelisi viemiseksi seuraavalle tasolle:
Pisteytys ja edistyminen
Anna esineille erilaisia pisteitä niiden vaikeustason tai harvinaisuuden perusteella. Voit luoda ja näyttää pisteytysjärjestelmän joka palkitsee pelaajia onnistuneesta navigoinnista liikkuvien esineiden läpi tai erikoisesineiden keräämisestä.
Ota käyttöön edistymisen seurantalaite, joka lisää pelin vaikeutta, kun pelaajat saavuttavat korkeampia pisteitä, pitäen heidät sitoutuneina ja motivoituina kehittymään.
Tehostukset ja bonukset
Luo erityisiä esineitä, jotka antavat pelaajalle tilapäisiä etuja kerättäessä. Nämä tehosteet voivat sisältää lisääntyneen nopeuden, voittamattomuuden tai jopa mahdollisuuden jäädyttää tai tuhota muita esineitä väliaikaisesti.
Ole luova näiden tehosteiden vaikutusten kanssa lisätäksesi strategista syvyyttä peliin.
Vihollisen tekoäly ja käyttäytyminen
Suunnittele vihollisen esineille kehittyneempiä liikemalleja, jotta pelaajien on vaikea välttää niitä. Käytä yksinkertaisia tekoälyalgoritmeja saadaksesi viholliset jahtaamaan pelaajaa älykkäästi tai liikkumaan koordinoidusti.
Vaihteleva vihollisen käyttäytyminen pitää pelaajat varpaillaan ja estää pelin muuttumasta yksitoikkoiseksi.
Keräilykohteet ja palkinnot
Levitä keräilyesineitä ympäri pelimaailmaa. Nämä voivat olla kolikoita, jalokiviä tai muita temaattisia esineitä. Kun pelaaja kerää tietyn määrän näitä esineitä, hän voi avata uusia tasoja, hahmoja tai jopa salaisia ominaisuuksia pelissä.
Parhaat käytännöt satunnaisten liikkuvien objektien lisäämiseen
Kun sisällytät Pygameen satunnaisia liikkuvia esineitä, seuraamalla näitä parhaita käytäntöjä voit luoda tasapainoisen ja viimeistellyn pelikokemuksen:
Tasapainotusvaikeus
Satunnaisten liikkuvien kohteiden nopeus ja liikemallit tulee tasapainottaa huolellisesti, jotta ne tarjoavat oikeudenmukaisen haasteen. Vältä saamasta esineitä liikkumaan liian nopeasti tai epäsäännöllisesti, koska se saattaa turhauttaa pelaajia ja saada pelin tuntumaan epäreilulta.
Toisaalta liian hitaasti liikkuvat esineet voivat tehdä pelistä liian helpon ja vähemmän kiinnostavan.
Optimointi suorituskykyä varten
Jos pelisi sisältää suuren määrän satunnaisia liikkuvia objekteja tai monimutkaisia liikealgoritmeja, harkitse koodin optimointia suorituskyvyn parantamiseksi. Käytä tehokkaita tietorakenteita ja algoritmeja törmäysten ja liikelaskelmien käsittelyyn.
Minimoi turhat laskelmat varmistaaksesi sujuvan ja reagoivan pelin, erityisesti vanhemmilla tai vähemmän tehokkailla laitteilla.
Testaus ja säätäminen
Testaa pelisi perusteellisesti erilaisilla skenaarioilla varmistaaksesi, että satunnaiset liikkuvat objektit toimivat oikein muiden pelin elementtien kanssa. Testaa törmäyksiä, vuorovaikutusta pelaajan kanssa ja mitä tahansa erityistä liikekäyttäytymistä.
Säädä objektien nopeutta, käyttäytymistä ja malleja pelitestauspalautteen perusteella saadaksesi optimaalisen pelikokemuksen.
Satunnaisuus hallinnassa
Vaikka termiä "satunnainen" käytetään näistä liikkuvista objekteista, täydellinen satunnaisuus ei välttämättä ole aina toivottavaa. Harkitse ohjatun satunnaisuuden sisällyttämistä, jolloin tietyt liikkeet tai kuviot määritellään mahdollisuuksien alueella tai joukossa.
Hallittu satunnaisuus varmistaa, että peli pysyy haastavana ja nautinnollisena muuttumatta liian kaoottiseksi.
Tee peleistä kiinnostavampia satunnaisten liikkuvien esineiden avulla
Satunnaisesti liikkuvat esineet lisäävät peliisi yllätystä ja arvaamattomuutta tehden siitä dynaamisemman ja kiinnostavamman. Ne pitävät pelaajat varpaillaan vaatien nopeita refleksejä ja strategista ajattelua. Lisäksi eri liikkeet ja vuorovaikutus näiden esineiden kanssa takaavat, että kaksi samanlaista pelikokemusta ei ole.