Neatkarīgi no tā, vai sadursme dod spēku vai noved pie spēles beigām, jums ir jāspēj to noteikt. Lūk, kā to izdarīt ar Python arkādes bibliotēku.
Sadursmes ir būtisks spēles aspekts daudzos videospēļu žanros. Tie spēlēm piešķir izaicinājumu un aizrautību, liekot spēlētājiem pārvarēt šķēršļus, izvairīties no ienaidniekiem un vākt balvas.
Sadursmju noteikšanas un apstrādes ieviešana spēlēs ir ļoti svarīga, lai izveidotu reālistisku un dinamisku spēles mehāniku, kas ļauj spēlētājiem iesaistīties un izklaidēties. Izmantojot tās iebūvētās funkcijas, varat viegli noteikt sadursmes ar arkādes bibliotēku.
Vienkāršas spēles izveide
Pirms sākat, pārliecinieties, ka jums ir pip ir instalēts jūsu ierīcē. Izmantojiet šo komandu, lai instalētu arkādes bibliotēku:
pip instalēšanas arkāde
Pēc tam izveidojiet spēli, kurā spēlētājs var pārvietoties pa kreisi un pa labi, lai izvairītos no sadursmes ar ienaidnieka taisnstūri. Spraitiem varat izmantot iebūvēto zīmēšanas funkciju.
Jūs varat atrast pilnu kods šajā GitHub repo.
Šeit ir spēles kods:
imports arkāde
SCREEN_WIDTH = 640
SCREEN_HEIGHT = 480
MOVEMENT_SPEED = 5klasēMana spēle(pasāža. logs):
def__tajā__(pats, platums, augstums):
super().__init__(platums, augstums, "Mana spēle")
arcade.set_background_color (arcade.color. BALTS)
self.player = arkāde. SpriteSolidColor(50, 50, arcade.color. ZILS)
self.player.center_x = SCREEN_WIDTH // 3
self.player.center_y = 50
sevis.ienaidnieks = arkāde. SpriteSolidColor(50, 50, arcade.color. SARKANS)
self.enemy.center_x = EKRĀNA_PLATUMS // 2
self.ienaidnieks.centrs_y = 50defon_draw(pats):
arcade.start_render()
self.player.draw()
self.enemy.draw()defon_key_press(pašs, atslēga, modifikatori):
ja taustiņš == arcade.key. PA kreisi:
self.player.center_x -= KUSTĪBAS_ĀTRUMS
elifs taustiņš == arcade.key. PA LABI:
self.player.center_x += KUSTĪBAS_ĀTRUMSdefAtjaunināt(self, delta_time):
ja arcade.check_for_collision (self.player, self.enemy):
drukāt ("Spēle beigusies")defgalvenais():
spēle = MyGame (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()
ja __nosaukums__ == "__galvenais__":
galvenais ()
Arkādes sadursmju noteikšanas līdzekļi
Arkādes bibliotēka nodrošina vienkāršu veidu, kā noteikt spraitu sadursmes. The pārbaudīt_sadursmei funkcija izmanto divus spraitus kā argumentus un atgriež Būla vērtību, norādot, vai spraiti ir sadūrušies. Varat izmantot šo funkciju, lai savā spēlē noteiktu sadursmes starp spēlētāju un ienaidnieka spraitiem.
Jūs varat mainīt Atjaunināt metode, lai pārbaudītu sadursmes starp spēlētāju un ienaidnieka spraitiem. Ja bibliotēka konstatē sadursmi, varat drukāt Spēle beigusies uz konsoli.
Šeit ir atjaunināts kods:
defAtjaunināt(self, delta_time):
ja arcade.check_for_collision (self.player, self.enemy):
drukāt ("Spēle beigusies")
cits:
self.player.update()
Izmantojot šīs izmaiņas, jūsu spēle atklās sadursmes un izdrukās Spēle beigusies tekstu, ja spēlētājs saduras ar ienaidnieku.
Papildu funkciju pievienošana
Lai padarītu spēli saistošāku, varat pievienot papildu funkcijas, piemēram, punktu skaitīšanu, pastiprināšanu un vairākus ienaidniekus.
Piemēram, varat izveidot ienaidnieku sarakstu un atjaunināt spēli, lai pēc katras sadursmes nejaušās pozīcijās radītu jaunus ienaidniekus. Jūs varat pārvietot atskaņotāju pa kreisi un pa labi, lai izvairītos no ienaidnieka un gūtu punktu. Tālāk ir sniegts piemērs, kā ieviest šīs funkcijas:
imports nejauši
klasēMana spēle(pasāža. logs):
def__tajā__(pats, platums, augstums):
super().__init__(platums, augstums, "Mana spēle")
arcade.set_background_color (arcade.color. BALTS)
self.player = arkāde. SpriteSolidColor(50, 50, arcade.color. ZILS)
self.player.center_x = SCREEN_WIDTH // 2
self.player.center_y = 50
sevis.ienaidnieki = arkāde. SpriteList()
pašvērtējums = 0
priekš i iekšā diapazons(3):
ienaidnieks = arkāde. SpriteSolidColor(50, 50, arcade.color. SARKANS)
ienaidnieks.centrs_x = random.randint(0, SCREEN_WIDTH)
ienaidnieks.center_y = random.randint (EKRĀNA_AUGSTUMS // 2, SCREEN_HEIGHT)
self.ienaidnieki.pievienot (ienaidnieks)defon_draw(pats):
arcade.start_render()
self.player.draw()
self.enemies.draw()
arcade.draw_text(f"Rezultāts: {self.score}", 10, SCREEN_HEIGHT — 30, arcade.color. MELNS, 16)
defAtjaunināt(self, delta_time):
ja arcade.check_for_collision_with_list (self.player, self.enemies):
drukāt ("Spēle beigusies")
arcade.close_window()
cits:
self.player.update()
priekš ienaidnieks iekšā self.ienaidnieki:
enemy.center_y -= KUSTĪBAS_ĀTRUMS / 2
ja ienaidnieks.centrs_y < 0:
ienaidnieks.centrs_x = random.randint(0, SCREEN_WIDTH)
ienaidnieks.center_y = random.randint (EKRĀNA_AUGSTUMS // 2, SCREEN_HEIGHT)
pašvērtējums += 1
Pateicoties šīm izmaiņām, jūsu spēlei tagad ir vairāki ienaidnieki, kas parādās nejaušās pozīcijās un virzās uz leju. Spēlētājs nopelna punktu par katru veiksmīgi izvairīto ienaidnieku, un spēle beidzas, ja spēlētājs saduras ar kādu ienaidnieku.
Uzlabojiet lietotāju iesaisti sadursmju gadījumā
Pievienojot savām spēlēm sadursmju noteikšanas un apstrādes funkcijas, varat spēlētājiem radīt aizraujošāku un izaicinošāku spēles pieredzi. Sākot no vienkāršām spēlēm, kas ļauj izvairīties un savākt, līdz sarežģītākām platformas spēlēm un šāvējiem, sadursmēm ir izšķiroša nozīme saistošas un apmierinošas spēles mehānikas izveidē.
Tātad, ja vēlaties izveidot saistošākas un ieskaujošākas spēles, kas liek spēlētājiem atgriezties pēc vairāk, apsveriet iespēju iekļaut savā spēles mehānikā sadursmju noteikšanas funkcijas.