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.

instagram viewer
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_width

draw_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_width

update_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 // 2

angle1 = player_center_y - object_center_y
angle2 = player_center_x - object_center_x

angle = 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_width

move_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 = 150

defshould_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_width

update_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_width

update_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.