Oferă-le jucătorilor ceva de luat pe măsură ce progresează în jocul tău.

Power-up-urile și obiectele de colecție sunt elemente esențiale ale jocului care pot îmbunătăți experiența de joc și pot adăuga entuziasm la jocurile arcade. Ele oferă jucătorilor abilități, recompense și provocări suplimentare. Cu biblioteca arcade, veți putea crea jocuri captivante cu power-up-uri și obiecte de colecție în cel mai scurt timp.

Creați un joc simplu

Începeți cu o configurație de bază în care jucătorul se poate mișca în patru direcții (stânga, dreapta, sus și jos) folosind intrările de la tastatură. În plus, introduceți un obiect inamic pentru a oferi interacțiune în mediul de joc.

Codul folosit în acest articol este disponibil în acest articol Depozitul GitHub și este gratuit pentru utilizare sub licența MIT.

Creați un fișier nou numit joc simplu.py si adauga codul de mai jos:

import arcadă

albastru = arcade.culoare. ALBASTRU
roșu = arcade.culoare. ROȘU
negru = arcade.culoare. NEGRU
alb = arcade.culoare. ALB
galben = arcade.culoare. GALBEN
verde = arcade.culoare. VERDE
orange = arcade.culoare. PORTOCALE

instagram viewer

clasăJoc(arcadă. Fereastră):
def__init__(sine, lățime, înălțime):
super().__init__(lățime, înălțime)
arcade.set_background_color (negru)

self.player = arcade. SpriteCircle(20, albastru)
self.player.center_x = latime // 2
self.player.center_y = înălțime // 2

self.enemy = arcade. SpriteSolidColor(20, 20, roșu)
self.enemy.center_x = latime // 4
self.enemy.center_y = înălțime // 4

defon_draw(de sine):
arcade.start_render()
self.player.draw()
sine.dușman.trage()

defActualizați(self, delta_time):
trece

defon_key_press(sine, cheie, modificatori):
dacă cheie == arcade.key. STÂNGA:
self.player.center_x -= 10
elif cheie == arcade.key. DREAPTA:
self.player.center_x += 10
elif cheie == arcade.key. SUS:
self.player.center_y += 10
elif cheie == arcade.key. JOS:
self.player.center_y -= 10

defprincipal():
joc = joc(800, 600)
arcade.run()

dacă __nume__ == "__principal__":
principal()

Rulați acest cod și veți avea un joc de bază cu mișcarea jucătorului și un obiect inamic.

Crearea statelor de joc

Pentru a include power-up-uri și obiecte de colecție, trebuie să stabiliți stări de joc, cum ar fi scorul și sănătatea. Puteți gestionează scorul și sănătate folosind o variabilă separată. Modificați codul pentru a include aceste caracteristici. Sănătatea jucătorului va scădea atunci când se ciocnește de obiectul inamic.

clasăJoc(arcadă. Fereastră):
def__init__(sine, lățime, înălțime):
super().__init__(lățime, înălțime)

self.score = 0
sine.sănătate = 100

defon_draw(de sine):
arcade.draw_text(f"Scor: {self.score}", 10, 10, alb)
arcade.draw_text(f"Sănătate: {self.health}", 10, 30, alb)

defActualizați(self, delta_time):
dacă arcade.check_for_collision (self.player, self.enemy):
sine.sănătate -= 10

dacă sine.sănătate <= 0:
self.game_over()

defjoc încheiat(de sine):
# Adăugați aici jocul peste logică
trece

Acum, starea de sănătate a jucătorului scade cu 10 când se ciocnește de inamicul, iar scorul și valorile de sănătate sunt afișate pe ecran.

Adăugarea obiectelor de colecție

Apoi, creați obiecte de colecție care vor crește scorul jucătorului cu 10 atunci când sunt colectate. Aceste obiecte de colecție vor avea forme diferite pentru varietate vizuală. Creați un fișier nou numit obiecte de colecţie.py și adăugați codul cu actualizarea de mai jos:

clasăJoc(arcadă. Fereastră):
def__init__(sine, lățime, înălțime):
super().__init__(lățime, înălțime)

self.collectibles = arcade. SpriteList()

pentru _ în gamă(5):
collectible = arcade. SpriteSolidColor(20, 40, galben)
collectible.center_x = random.randint(0, latime)
collectible.center_y = random.randint(0, înălțime)
self.collectibles.append (de colecție)

defon_draw(de sine):
arcade.start_render()
self.player.draw()
sine.dușman.trage()
self.collectibles.draw()
arcade.draw_text(f"Scor: {self.score}", 10, 10, alb)
arcade.draw_text(f"Sănătate: {self.health}", 10, 30, alb)

defActualizați(self, delta_time):
pentru de colecție în auto.colecție:
dacă arcade.check_for_collision (self.player, de colecție):
self.score += 10
collectible.remove_from_sprite_lists()

Creați o listă de obiecte de colecție cu cinci instanțe, fiecare reprezentată printr-un dreptunghi galben. Când jucătorul se ciocnește de un obiect de colecție, scorul acestuia crește cu 10, iar obiectul de colecție este eliminat din lista de sprite.

Adăugarea de power-up-uri

Acum, puteți adăuga power-up-uri jocului dvs. Când jucătorul colectează o pornire, un scut va apărea în jurul lor timp de 10 secunde. În acest timp, dacă jucătorul se ciocnește de inamicul, ei vor distruge inamicul. Creați un fișier nou numit power-up-uri.py și adăugați codul cu actualizarea de mai jos:

clasăJoc(arcadă. Fereastră):
def__init__(sine, lățime, înălțime):
super().__init__(lățime, înălțime)

self.power_up = arcade. SpriteSolidColor(50, 20, verde)
self.power_up.center_x = random.randint(0, latime)
self.power_up.center_y = random.randint(0, înălțime)

self.shield_active = Fals
self.shield_duration = 10
self.shield_timer = 0

defon_draw(de sine):
arcade.start_render()
self.player.draw()
sine.dușman.trage()
self.collectibles.draw()
self.power_up.draw()
arcade.draw_text(f"Scor: {self.score}", 10, 10, alb)
arcade.draw_text(f"Sănătate: {self.health}", 10, 30, alb)

defActualizați(self, delta_time):
dacă arcade.check_for_collision (self.player, self.enemy):
dacănu self.shield_active:
sine.sănătate -= 10
dacă sine.sănătate <= 0:
self.game_over()
altfel:
self.enemy.remove_from_sprite_lists()

dacă self.shield_active:
self.shield_timer += delta_time

dacă self.shield_timer >= self.shield_duration:
self.shield_active = Fals
self.shield_timer = 0

pentru de colecție în auto.colecție:
dacă arcade.check_for_collision (self.player, de colecție):
self.score += 10
collectible.remove_from_sprite_lists()

dacă arcade.check_for_collision (self.player, self.power_up):
self.shield_active = Adevărat
self.power_up.remove_from_sprite_lists()

Mai jos este rezultatul:

Inclusiv caracteristici suplimentare

Puteți îmbunătăți și mai mult sistemul de power-up-uri și de colecție adăugând funcții suplimentare. De exemplu, puteți crea o pornire a temporizatorului care prelungește timpul de joc atunci când este colectat. Creați un fișier nou numit timer-power-up.py și adăugați codul cu actualizarea de mai jos:

clasăJoc(arcadă. Fereastră):
def__init__(sine, lățime, înălțime):
super().__init__(lățime, înălțime)
arcade.set_background_color (negru)

self.player = arcade. SpriteCircle(20, albastru)
# ...

self.timer_power_up = arcade. SpriteSolidColor(40, 20, portocale)
self.timer_power_up.center_x = random.randint(0, latime)
self.timer_power_up.center_y = random.randint(0, înălțime)

self.game_time = 60# Timpul inițial al jocului în secunde
self.timer_power_up_duration = 10

# ...

defActualizați(self, delta_time):
# ...

dacă arcade.check_for_collision (self.player, self.timer_power_up):
self.game_time += self.timer_power_up_duration
self.timer_power_up.remove_from_sprite_lists()

# ...

defprincipal():
joc = joc(800, 600)
arcade.run()

dacă __nume__ == "__principal__":
principal()

Cele mai bune practici pentru porniri și obiecte de colecție

Power-up-urile și obiectele de colecție joacă un rol crucial în îmbunătățirea experienței de joc a jocurilor arcade. Pentru a vă asigura că aceste elemente sunt plăcute și bine integrate în joc, este esențial să urmați câteva dintre cele mai bune practici:

Claritate vizuală și consistență

Folosește sprite-uri distincte și atractive din punct de vedere vizual pentru power-up-uri și obiecte de colecție pentru a le face să iasă în evidență față de alte elemente ale jocului. Asigurați-vă că aspectul power-up-urilor și obiectelor de colecție se aliniază cu efectele și scopul lor în joc.

Mențineți consecvența în design, scheme de culori și dimensiune pentru power-up-uri și obiecte de colecție pe tot parcursul jocului.

Echilibru și provocare

Ajustați raritatea și distribuția power-up-urilor și a obiectelor de colecție pentru a menține un sentiment de provocare și recompensă pentru jucători. Evitați copleșirea jucătorilor cu prea multe power-up-uri sau obiecte de colecție, deoarece ar putea diminua impactul și entuziasmul de a le găsi.

Echilibrează cu atenție eficacitatea și durata de power-up pentru a preveni ca acestea să fie prea copleșite sau dezamăgitoare.

Ștergeți indicatorii și feedback-ul

Furnizați indicatori vizuali și audio clari atunci când jucătorul colectează o pornire sau o colecție. Afișați efecte vizuale temporare, cum ar fi animații sau particule, pentru a semnifica activarea pornirilor și durata acestora.

Relația provocare-recompensă

Asigurați-vă că power-up-urile și obiectele de colecție oferă jucătorului recompense semnificative, cum ar fi scor sporit, abilități suplimentare sau timp de joc extins. Aliniați dificultatea de a obține power-up-uri și obiecte de colecție cu beneficiile pe care le oferă. Sarcinile mai provocatoare ar trebui să genereze recompense mai valoroase.

Testare de joc și echilibrare

Testați jocul pe larg pentru a observa cum interacționează jucătorii cu power-up-urile și obiectele de colecție. Folosiți feedback-ul jucătorului pentru a ajusta distribuția, durata și efectele power-up-urilor și obiectelor de colecție pentru a crea o experiență echilibrată și plăcută.

Urmând aceste bune practici, puteți crea un sistem de pornire și de colecție captivant și bine echilibrat, care îmbunătățește experiența de joc și îi menține pe jucători implicați în jocul dvs. arcade.

Faceți jocurile mai distractive cu power-up-uri și obiecte de colecție

Power-up-urile și obiectele de colecție adaugă un strat suplimentar de entuziasm și implicare la jocurile arcade. Ele nu numai că oferă jucătorilor noi abilități și recompense, dar creează și provocări interesante și alegeri strategice.

Încorporând aceste funcții folosind biblioteca Python Arcade, vă puteți face jocurile mai plăcute și puteți îmbunătăți experiența generală de joc pentru jucătorii dvs. Nu uitați să experimentați, să repetați și să vă dezlănțuiți creativitatea pentru a crea power-up-uri și obiecte de colecție unice și captivante care se aliniază cu tema și mecanica jocului dvs.