logo

Kako razviti igro v Pythonu

Najbolj prilagodljiv jezik je Python, ki se uporablja v skoraj vseh panogah, vključno z razvojem iger, spletnim razvojem, strojnim učenjem, umetno inteligenco in aplikacijami GUI.

Igra je razvita s paketom pygame, ki je vgrajena funkcija Pythona. Z osnovnim razumevanjem programiranja Python lahko ustvarimo vizualno privlačne igre z ustrezno animacijo, zvočnimi učinki in glasbo z uporabo modula pygame.

Za ustvarjanje video iger se uporablja večplatformska knjižnica, imenovana Pygame. Ima zvočne knjižnice in računalniške vizualne elemente, ki igralcu zagotavljajo tipično igralno izkušnjo.

Pete Shinners ga razvija, da bi nadomestil PySDL.

Predpogoji za Pygame

Da bi se naučili Pygame, moramo razumeti programski jezik Python.

globalne spremenljivke javascript

Namestitev Pygame

Če želite namestiti Pygame, odprite terminal ukazne vrstice in vnesite naslednji ukaz.

 pip install pygame 

Namestite ga lahko tudi preko IDE. Za nadaljnja navodila za namestitev obiščite našo celotno vadnico za pygame (https://www.javatpoint.com/pygame). Tukaj boste našli vse bistvene razlage pygame.

Preprost primer Pygame

Tukaj je naslednji primer ustvarjanja preprostega okna pygame.

 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() 

Izhod:

java konstante
Kako razviti igro v Pythonu

Pojasnilo:

Priložena koda odpre okno Pygame velikosti 400 x 500 slikovnih pik in zažene zanko, ki ves čas spremlja dogodke. Zanka spremeni spremenljivko 'done' v True, kar konča zanko in konča program, če je zaznan dogodek QUIT (običajno, ko uporabnik zapre okno). Posodobi zaslon in poskrbi, da so vse spremembe prikazane na zaslonu zahvaljujoč metodi 'pygame.display.flip()'. Če na kratko povem, koda ustvari majhno okno Pygame, ki ostane aktivno, dokler ga uporabnik ne odpusti, in prikazuje osnovno strukturo programa, ki je vodena po dogodkih.

razlika med lisico in volkom

Vse grafike bodo narisane v oknu pygame.

Razumejmo osnovno sintakso zgornjega programa.

    uvozi pygame:To je modul, ki nam omogoča dostop do vseh funkcij Pygame.toplota():Uporablja se za inicializacijo vsakega od potrebnih modulov pygame.display.set_mode((širina, višina)):Uporablja se za prilagajanje velikosti okna. Predmet bo vrnil na površino. Grafična dejanja se izvajajo prek površinskega predmeta.event.get():Rezultat je prazna čakalna vrsta dogodkov. Če je ne pokličemo, bo operacijski sistem igro zaznal kot neodzivno, okenska sporočila pa se bodo začela kopičiti.PRENEHATI:Ko kliknemo na križec v kotu okna, se ta uporabi za opustitev dogodka.display.flip():Vse posodobitve igre se odražajo v njej. Kadarkoli naredimo kakršne koli spremembe, se moramo obrniti na zaslon. flip() je funkcija.

Na površino Pygame je mogoče narisati katero koli obliko, vključno s čudovitimi pisavami in slikami. Številne vgrajene metode v Pygame vam omogočajo risanje geometrijskih oblik na zaslonu. Ti obrazci predstavljajo prve korake pri ustvarjanju igre.

Oglejmo si naslednjo ilustracijo obrazca, ki se izriše na zaslonu.

Primer -

 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() 

Izhod:

Kako razviti igro v Pythonu

Pojasnilo:

Dani program Python s pomočjo paketa Pygame ustvari grafično okno z narisanimi različnimi geometrijskimi oblikami. Program ustvari okno Pygame velikosti 400 x 300 slikovnih pik, nato pa zažene zanko, ki ves čas spremlja dogodke in poskrbi, da okno ostane odprto, dokler ga uporabnik ne zapre. Na začetku te zanke počisti zaslon in nato uporabi rutine risanja Pygame za ustvarjanje različnih oblik z različnimi barvami in širinami črt. Te oblike vključujejo črte, poligone, elipse, kroge in loke. Vsaka oblika ima definirane ustrezne koordinate in lastnosti. Nazadnje se 'pygame.display.flip()' uporablja za osvežitev zaslona. Program prekine pygame po zaprtju okna.

xvideoservicethief prenos ubuntu 14.04

Aplikacija služi kot primer prilagodljivosti in raznolikosti risarskih zmogljivosti Pygame ter zagotavlja okvir za razvoj interaktivnih grafičnih aplikacij. Razvijalci lahko ustvarijo široko paleto vizualnih komponent znotraj grafičnega okolja Pygame s prilagajanjem parametrov, kot so koordinate, barve in širine črt. To omogoča izdelavo interaktivnih multimedijskih aplikacij, iger in simulacij.

Primer – razvoj igre Snake z uporabo Pygame

program -

bfs proti dfs
 # 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() </=>

Izhod:

Kako razviti igro v Pythonu

Če se kača dotakne same sebe, bo prekinila igro in prikazala naslednje sporočilo.

Kako razviti igro v Pythonu

Če želite nadaljevati, preprosto kliknite gumb V redu. Terminal Pycharm prikaže naš rezultat (uporabili smo Pycharm IDE, vendar lahko uporabite kateri koli Python IDE).

Kako razviti igro v Pythonu

Pojasnilo:

Priloženi skript Python uporablja paket Pygame za ustvarjanje preproste igre Snake. Vzpostavi razrede za kačo in ločene kocke, ki sestavljajo njeno telo. Pygame se uporablja za nastavitev igralnega okna, ki ima mrežno strukturo in premikajočo se kačo. Ko poje kocko 'prigrizek', se kača podaljša in če se zaleti vase ali v mejne zidove, je igre konec.

Za upravljanje smeri kače, ustvarjanje prigrizkov na naključnih točkah mreže, zaznavanje trkov med glavo in telesom kače, posodobitev stanja igre in prerisovanje okna igre mora logika igre obdelati uporabniški vnos. Za nadzor interakcij v igri in vizualnih posodobitev skript uporablja Pygameove metode za obravnavo dogodkov in risanje. Ima tudi osnovno funkcijo sporočilnega polja, ki uporablja Tkinter za prikazovanje sporočil igralcu, na primer, ko izgubi igro. Na splošno skript prikazuje ključne zamisli v programiranju iger Pygame in ponuja osnovno upodobitev starinske igre Snake.