logo

Kuinka kehittää peli Pythonissa

Mukautuvin kieli on Python, jota käytetään lähes kaikilla toimialoilla, mukaan lukien pelikehitys, verkkokehitys, koneoppiminen, tekoäly ja GUI-sovellukset.

Peli on kehitetty käyttämällä pygame-pakettia, joka on Pythonin sisäänrakennettu ominaisuus. Python-ohjelmoinnin alkeellisella ymmärryksellä voimme luoda visuaalisesti houkuttelevia pelejä sopivilla animaatioilla, äänitehosteilla ja musiikilla käyttämällä pygame-moduulia.

Monikäyttöistä Pygame-kirjastoa käytetään videopelien luomiseen. Siinä on äänikirjastot ja tietokonevisuaalit, jotka tarjoavat pelaajalle tyypillisen pelikokemuksen.

Pete Shinners kehittää sitä PySDL:n tilalle.

Pygamen edellytykset

Pygamen oppimiseksi meidän on ymmärrettävä Python-ohjelmointikieli.

lajittelutaulukko javassa

Pygamen asennus

Asenna Pygame avaamalla komentorivipääte ja antamalla seuraava komento.

 pip install pygame 

Voimme asentaa sen myös IDE:n kautta. Lisätietoja asennusoppaasta on täydellisessä pygame-opetusohjelmassamme (https://www.javatpoint.com/pygame). Täältä löydät kaikki olennaiset pygame-selitykset.

Yksinkertainen Pygame-esimerkki

Tässä on seuraava esimerkki yksinkertaisen pygame-ikkunan luomisesta.

 import pygame pygame.init() screen = pygame.display.set_mode((400,500)) done = False while not done: for event in pygame.event.get(): if event.type == pygame.QUIT: done = True pygame.display.flip() 

Lähtö:

jtextfield
Kuinka kehittää peli Pythonissa

Selitys:

Mukana toimitettu koodi avaa 400x500 pikselin Pygame-ikkunan ja käynnistää silmukan, joka tarkkailee tapahtumia koko ajan. Silmukka muuttaa 'done'-muuttujan arvoon True, mikä päättää silmukan ja ohjelman, jos havaitaan QUIT-tapahtuma (yleensä kun käyttäjä sulkee ikkunan). Päivittää näytön ja varmistaa, että kaikki muutokset näkyvät näytöllä pygame.display.flip()-menetelmän ansiosta. Lyhyesti sanottuna koodi luo pienen Pygame-ikkunan, joka pysyy aktiivisena, kunnes käyttäjä hylkää sen ja jossa on tapahtumaohjattu perusohjelmarakenne.

merkkijono ti int

Kaikki grafiikat piirretään pygame-ikkunaan.

Ymmärretään yllä olevan ohjelman perussyntaksi.

    tuo pygame:Se on moduuli, joka antaa meille pääsyn kaikkiin Pygamen toimintoihin.lämpö():Sitä käytetään jokaisen pygamen tarvittavan moduulin alustamiseen.display.set_mode((leveys, korkeus)):Sitä käytetään säätämään ikkunan kokoa. Se antaa tuotteen takaisin pinnalle. Graafiset toiminnot suoritetaan pintaobjektin kautta.event.get():Tuloksena on tyhjä tapahtumajono. Jos emme kutsu sitä, käyttöjärjestelmä havaitsee pelin reagoimattomaksi ja ikkunaviestit alkavat kerääntyä.LOPETTAA:Kun napsautamme ikkunan kulmassa olevaa ristipainiketta, sitä käytetään tapahtuman hylkäämiseen.display.flip():Kaikki pelin päivitykset näkyvät siinä. Meidän on otettava yhteyttä näyttöön aina, kun teemme muutoksia.flip() on funktio.

Pygame-pinnalle voidaan piirtää mitä tahansa muotoa, mukaan lukien kauniit fontit ja kuvat. Pygamen lukuisten sisäänrakennettujen menetelmien avulla voit piirtää geometrisia muotoja näytölle. Nämä lomakkeet edustavat ensimmäisiä askeleita pelin luomisessa.

Tarkastellaan seuraavaa kuvaa näytölle piirretystä lomakkeesta.

Esimerkki -

 import pygame from math import pi pygame.init() # size variable is using for set screen size size = [400, 300] screen = pygame.display.set_mode(size) pygame.display.set_caption('Example program to draw geometry') # done variable is using as flag done = False clock = pygame.time.Clock() while not done: # clock.tick() limits the while loop to a max of 10 times per second. clock.tick(10) for event in pygame.event.get(): # User did something if event.type == pygame.QUIT: # If user clicked on close symbol done = True # done variable that we are complete, so we exit this loop # All drawing code occurs after the for loop and but # inside the main while done==False loop. # Clear the default screen background and set the white screen background screen.fill((0, 0, 0)) # Draw on the screen a green line which is 5 pixels wide. pygame.draw.line(screen, (0, 255, 0), [0, 0], [50, 30], 5) # Draw on the screen a green line which is 5 pixels wide. pygame.draw.lines(screen, (0, 0, 0), False, [[0, 80], [50, 90], [200, 80], [220, 30]], 5) # Draw a rectangle outline pygame.draw.rect(screen, (0, 0, 0), [75, 10, 50, 20], 2) # Draw a solid rectangle pygame.draw.rect(screen, (0, 0, 0), [150, 10, 50, 20]) # This draw an ellipse outline, using a rectangle as the outside boundaries pygame.draw.ellipse(screen, (255, 0, 0), [225, 10, 50, 20], 2) # This draw a solid ellipse, using a rectangle as the outside boundaries pygame.draw.ellipse(screen, (255, 0, 0), [300, 10, 50, 20]) # Draw a triangle using the polygon function pygame.draw.polygon(screen, (0, 0, 0), [[100, 100], [0, 200], [200, 200]], 5) # This draw a circle pygame.draw.circle(screen, (0, 0, 255), [60, 250], 40) # This draw an arc pygame.draw.arc(screen, (0, 0, 0), [210, 75, 150, 125], 0, pi / 2, 2) # This function must write after all the other drawing commands. pygame.display.flip() # Quite the execution when clicking on close pygame.quit() 

Lähtö:

Kuinka kehittää peli Pythonissa

Selitys:

Annettu Python-ohjelma luo Pygame-paketin avulla graafisen ikkunan, johon on piirretty erilaisia ​​geometrisia muotoja. Ohjelma luo 400x300 pikselin Pygame-ikkunan ja käynnistää sitten silmukan, joka tarkkailee tapahtumia koko ajan ja varmistaa, että ikkuna pysyy auki, kunnes käyttäjä sulkee sen. Se tyhjentää näytön tämän silmukan alussa ja käyttää sitten Pygamen piirustusrutiineja luodakseen erilaisia ​​muotoja eri väreillä ja viivanleveydillä. Näitä muotoja ovat viivat, monikulmiot, ellipsit, ympyrät ja kaaret. Jokaisella lomakkeella on määritetty oikeat koordinaatit ja ominaisuudet. Lopuksi 'pygame.display.flip()' käytetään näytön päivittämiseen. Ohjelma lopettaa pygamen, kun ikkuna suljetaan.

pääsiäismunat androidissa

Sovellus toimii esimerkkinä Pygamen piirustusominaisuuksien mukautumisesta ja monipuolisuudesta ja tarjoaa puitteet interaktiivisten graafisten sovellusten kehittämiseen. Kehittäjät voivat luoda Pygamen graafiseen ympäristöön laajan valikoiman visuaalisia komponentteja säätämällä parametreja, kuten koordinaatteja, värejä ja viivanleveyksiä. Tämä mahdollistaa interaktiivisten multimediasovellusten, pelien ja simulaatioiden rakentamisen.

Esimerkki - Snake-pelin kehittäminen Pygamen avulla

Ohjelma -

päivämäärä merkkijonoon
 # Snake Tutorial Using Pygame import math import random import pygame import tkinter as tk from tkinter import messagebox class cube(object): rows = 20 w = 500 def __init__(self, start, dirnx=1, dirny=0, color=(255, 0, 0)): self.pos = start self.dirnx = 1 self.dirny = 0 self.color = color def move(self, dirnx, dirny): self.dirnx = dirnx self.dirny = dirny self.pos = (self.pos[0] + self.dirnx, self.pos[1] + self.dirny) def draw(self, surface, eyes=False): dis = self.w // self.rows i = self.pos[0] j = self.pos[1] pygame.draw.rect(surface, self.color, (i * dis + 1, j * dis + 1, dis - 2, dis - 2)) if eyes: centre = dis // 2 radius = 3 circleMiddle = (i * dis + centre - radius, j * dis + 8) circleMiddle2 = (i * dis + dis - radius * 2, j * dis + 8) pygame.draw.circle(surface, (0, 0, 0), circleMiddle, radius) pygame.draw.circle(surface, (0, 0, 0), circleMiddle2, radius) # This class is defined for snake design and its movement class snake(object): body = [] turns = {} def __init__(self, color, pos): self.color = color self.head = cube(pos) self.body.append(self.head) self.dirnx = 0 self.dirny = 1 def move(self): for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() keys = pygame.key.get_pressed() # It will manage the keys movement for the snake for key in keys: if keys[pygame.K_LEFT]: self.dirnx = -1 self.dirny = 0 self.turns[self.head.pos[:]] = [self.dirnx, self.dirny] elif keys[pygame.K_RIGHT]: self.dirnx = 1 self.dirny = 0 self.turns[self.head.pos[:]] = [self.dirnx, self.dirny] elif keys[pygame.K_UP]: self.dirnx = 0 self.dirny = -1 self.turns[self.head.pos[:]] = [self.dirnx, self.dirny] elif keys[pygame.K_DOWN]: self.dirnx = 0 self.dirny = 1 self.turns[self.head.pos[:]] = [self.dirnx, self.dirny] # Snake when hit the boundary wall for i, c in enumerate(self.body): p = c.pos[:] if p in self.turns: turn = self.turns[p] c.move(turn[0], turn[1]) if i == len(self.body) - 1: self.turns.pop(p) else: if c.dirnx == -1 and c.pos[0] = c.rows - 1: c.pos = (0, c.pos[1]) elif c.dirny == 1 and c.pos[1] &gt;= c.rows - 1: c.pos = (c.pos[0], 0) elif c.dirny == -1 and c.pos[1] <= 0 1 0: c.pos="(c.pos[0]," c.rows - 1) else: c.move(c.dirnx, c.dirny) def reset(self, pos): self.head="cube(pos)" self.body="[]" self.body.append(self.head) self.turns="{}" self.dirnx="0" self.dirny="1" # it will add the new cube in snake tail after every successful score addcube(self): dx, dy="tail.dirnx," tail.dirny if dx="=" and self.body.append(cube((tail.pos[0] 1, tail.pos[1]))) elif -1 + 1: self.body.append(cube((tail.pos[0], tail.pos[1] 1))) -1: self.body[-1].dirnx="dx" self.body[-1].dirny="dy" draw(self, surface): for i, c enumerate(self.body): i="=" c.draw(surface, true) c.draw(surface) drawgrid(w, rows, sizebtwn="w" rows x="0" y="0" l range(rows): draw grid line pygame.draw.line(surface, (255, 255, 255), (x, 0), w)) (0, y), (w, y)) this class define game surface redrawwindow(surface): global width, s, snack is used to surface.fill((0, 0, 0)) s.draw(surface) snack.draw(surface) drawgrid(width, surface) pygame.display.update() randomsnack(rows, item): positions="item.body" while true: len(list(filter(lambda z: z.pos="=" positions)))> 0: continue else: break return (x, y) # Using Tkinter function to display message def message_box(subject, content): root = tk.Tk() root.attributes(&apos;-topmost&apos;, True) root.withdraw() messagebox.showinfo(subject, content) try: root.destroy() except: pass # main() function def main(): global width, rows, s, snack width = 500 rows = 20 win = pygame.display.set_mode((width, width)) s = snake((255, 0, 0), (10, 10)) snack = cube(randomSnack(rows, s), color=(0, 255, 0)) flag = True clock = pygame.time.Clock() while flag: pygame.time.delay(50) clock.tick(10) s.move() if s.body[0].pos == snack.pos: s.addCube() snack = cube(randomSnack(rows, s), color=(0, 255, 0)) for x in range(len(s.body)): if s.body[x].pos in list(map(lambda z: z.pos, s.body[x + 1:])): print(&apos;Score: 
&apos;, len(s.body)) message_box(&apos;You Lost!
&apos;, &apos;Play again...
&apos;) s.reset((10, 10)) break redrawWindow(win) pass main() </=>

Lähtö:

Kuinka kehittää peli Pythonissa

Jos käärme koskettaa itseään, se lopettaa pelin ja näyttää seuraavan viestin.

Kuinka kehittää peli Pythonissa

Jatka napsauttamalla OK-painiketta. Pycharm-pääte näyttää tuloksemme (käytimme Pycharm IDE:tä, mutta voit käyttää mitä tahansa Python IDE:tä).

Kuinka kehittää peli Pythonissa

Selitys:

Mukana toimitettu Python-skripti käyttää Pygame-pakettia suoraviivaisen Snake-pelin luomiseen. Se perustaa luokat sekä käärmeelle että erillisille kuutioille, jotka muodostavat sen ruumiin. Pygamea käytetään peli-ikkunan asettamiseen, jossa on ruudukkorakenne ja liikkuva käärme. Syötyään välipalakuution käärme pitenee, ja jos se törmää itseensä tai rajaseiniin, peli on ohi.

Jotta voit hallita käärmeen suuntaa, tuottaa välipaloja satunnaisissa ruudukon kohdissa, havaita törmäykset käärmeen pään ja kehon välillä, päivittää pelin tilaa ja piirtää peliikkunan uudelleen, pelilogiikan on käsiteltävä käyttäjän syötteitä. Pelien vuorovaikutusten ja visuaalisten päivitysten ohjaamiseen skripti käyttää Pygamen tapahtumankäsittely- ja piirustusmenetelmiä. Siinä on myös perusviestilaatikkoominaisuus, joka näyttää pelaajalle viestit Tkinterin avulla esimerkiksi silloin, kun pelaaja häviää pelin. Kaiken kaikkiaan käsikirjoitus näyttää avainideoita Pygame-pelien ohjelmointiin ja tarjoaa alkeellisen esityksen vintage Snake -pelistä.