Det mest tilpasningsdygtige sprog er Python, som bruges i næsten alle brancher, herunder spiludvikling, webudvikling, maskinlæring, kunstig intelligens og GUI-applikationer.
Spillet er udviklet ved hjælp af pygame-pakken, som er en indbygget funktion i Python. Med en rudimentær forståelse af Python-programmering kan vi skabe visuelt tiltalende spil med passende animation, lydeffekter og musik ved at bruge pygame-modulet.
Et bibliotek på tværs af platforme kaldet Pygame bruges til at skabe videospil. Den har lydbiblioteker og computervisuals for at give spilleren en typisk spiloplevelse.
Pete Shinners udvikler det til at træde i stedet for PySDL.
Forudsætninger for Pygame
Vi er nødt til at forstå Python-programmeringssproget for at lære Pygame.
java understreng funktion
Installerer Pygame
For at installere Pygame skal du åbne en kommandolinjeterminal og indtaste følgende kommando.
hvad er rom
pip install pygame
Vi kan også installere det via IDE. For yderligere installationsvejledning, besøg vores komplette pygame-tutorial ( https://www.javatpoint.com/pygame ). Her finder du alle de væsentlige pygame-forklaringer.
Simpelt Pygame eksempel
Her er følgende eksempel på at skabe et simpelt pygame-vindue.
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()
Produktion:
Forklaring:
Den medfølgende kode åbner et 400x500 pixel Pygame-vindue og starter en loop, der hele tiden holder øje med begivenheder. Sløjfen ændrer 'done'-variablen til True, som afslutter løkken og afslutter programmet, hvis en QUIT-hændelse detekteres (normalt når brugeren forlader vinduet). Opdaterer displayet og sørger for, at eventuelle ændringer vises på skærmen takket være 'pygame.display.flip()'-metoden. For at sige det kort genererer koden et lille Pygame-vindue, der forbliver aktivt, indtil brugeren afviser det, og viser en grundlæggende programstruktur, der er hændelsesdrevet.
Al grafik tegnes i pygame-vinduet.
Lad os forstå den grundlæggende syntaks for ovenstående program.
hvordan man læser csv-filen i java
Enhver form kan tegnes på Pygame-overfladen, inklusive smukke skrifttyper og billeder. Adskillige indbyggede metoder i Pygame giver dig mulighed for at tegne geometriske figurer på skærmen. Disse formularer repræsenterer de første trin i at skabe et spil.
Lad os undersøge følgende illustration af en formular, der tegnes på en skærm.
Eksempel -
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()
Produktion:
Forklaring:
Det givne Python-program opretter et grafisk vindue med forskellige geometriske former tegnet i det ved at bruge Pygame-pakken. Programmet opretter et 400x300 pixel Pygame-vindue, og det starter derefter en løkke, der hele tiden holder øje med begivenheder og sørger for, at vinduet forbliver åbent, indtil brugeren forlader det. Den rydder skærmen i begyndelsen af denne løkke og bruger derefter Pygames tegnerutiner til at skabe en række forskellige former med varierende farver og linjebredder. Disse former omfatter linjer, polygoner, ellipser, cirkler og buer. Hver form har sine korrekte koordinater og egenskaber defineret. Til sidst bruges 'pygame.display.flip()' til at opdatere skærmen. Programmet afslutter pygame ved lukning af vinduet.
Applikationen fungerer som et eksempel på Pygames tegneegenskabers tilpasningsevne og variation og giver en ramme for udvikling af interaktive grafiske applikationer. Udviklere kan skabe en lang række visuelle komponenter inde i Pygames grafiske miljø ved at justere parametre som koordinater, farver og linjebredder. Dette giver mulighed for konstruktion af interaktive multimedieapplikationer, spil og simuleringer.
linux operativsystem
Eksempel - Udvikling af slangespil ved hjælp af Pygame
Program -
# 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] >= 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('-topmost', 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('Score: ', len(s.body)) message_box('You Lost! ', 'Play again... ') s.reset((10, 10)) break redrawWindow(win) pass main() </=>
Produktion:
find min iphone android
Hvis slangen rører sig selv, vil den afslutte spillet og vise følgende besked.
For at genoptage skal du blot klikke på OK-knappen. Pycharm-terminalen viser vores score (vi brugte Pycharm IDE, men du kan bruge enhver Python IDE).
Forklaring:
Det medfølgende Python-script bruger Pygame-pakken til at skabe et ligetil Snake-spil. Den etablerer klasser for både slangen og de separate terninger, der udgør dens krop. Pygame bruges til at opsætte spilvinduet, som har en gitterstruktur og en bevægelig slange. Efter at have spist en 'snack'-terning, forlænges slangen, og hvis den løber ind i sig selv eller grænsevæggene, er spillet slut.
For at styre slangens retning, generere snacks på tilfældige punkter på gitteret, registrere kollisioner mellem slangens hoved og krop, opdatere spiltilstanden og gentegne spilvinduet, skal spillogikken håndtere brugerinput. For at kontrollere spilinteraktioner og visuelle opdateringer gør scriptet brug af Pygames hændelseshåndtering og tegnemetoder. Den har også en grundlæggende beskedboksfunktion, der bruger Tkinter til at vise spillernes beskeder, såsom når de taber et spil. Generelt viser scriptet nøgleideer i Pygame-spilprogrammering og tilbyder en rudimentær gengivelse af vintage Snake-spillet.