logo

Como desenvolver um jogo em Python

A linguagem mais adaptável é Python, usada em quase todos os setores, incluindo desenvolvimento de jogos, desenvolvimento web, aprendizado de máquina, inteligência artificial e aplicativos GUI.

O jogo é desenvolvido usando o pacote pygame, que é um recurso integrado do Python. Com uma compreensão rudimentar da programação Python, podemos criar jogos visualmente atraentes com animação, efeitos sonoros e música apropriados, utilizando o módulo pygame.

Uma biblioteca multiplataforma chamada Pygame é usada para criar videogames. Possui bibliotecas de sons e recursos visuais de computador para fornecer ao jogador uma experiência de jogo típica.

Pete Shinners está desenvolvendo-o para substituir o PySDL.

Pré-requisitos para Pygame

Precisamos compreender a linguagem de programação Python para aprender Pygame.

shweta tiwari

Instalando o Pygame

Para instalar o Pygame, abra um terminal de linha de comando e digite o seguinte comando.

os números do alfabeto
 pip install pygame 

Também podemos instalá-lo através do IDE. Para obter mais instruções de instalação, visite nosso tutorial completo do pygame (https://www.javatpoint.com/pygame). Aqui você encontrará todas as explicações essenciais do pygame.

Exemplo simples de Pygame

Aqui está o seguinte exemplo de criação de uma janela pygame simples.

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

Saída:

Como desenvolver um jogo em Python

Explicação:

O código fornecido abre uma janela Pygame de 400x500 pixels e inicia um loop que monitora eventos o tempo todo. O loop altera a variável 'done' para True, o que encerra o loop e encerra o programa se um evento QUIT for detectado (geralmente quando o usuário sai da janela). Atualiza a exibição e garante que quaisquer alterações sejam mostradas na tela graças ao método 'pygame.display.flip()'. Resumindo, o código gera uma pequena janela Pygame que permanece ativa até que o usuário a feche, exibindo uma estrutura básica de programa que é orientada por eventos.

arraylist e lista vinculada

Todos os gráficos serão desenhados na janela do pygame.

Vamos entender a sintaxe básica do programa acima.

    importar pygame:É o módulo que nos dá acesso a todas as funções do Pygame.aquecer():É empregado para inicializar cada um dos módulos necessários do pygame.display.set_mode((largura, altura)):É empregado para ajustar o tamanho da janela. Isso devolverá o item na superfície. As ações gráficas são realizadas através do objeto de superfície.evento.get():O resultado é uma fila de eventos vazia. Se não ligarmos, o sistema operacional perceberá que o jogo não responde e as mensagens da janela começarão a se acumular.DESISTIR:Ao clicar no botão de cruz no canto da janela, ele é utilizado para descartar o evento.display.flip():Quaisquer atualizações do jogo são refletidas nele. Devemos entrar em contato com o display sempre que fizermos alguma alteração.flip() é uma função.

Qualquer forma pode ser desenhada na superfície do Pygame, incluindo belas fontes e imagens. Vários métodos integrados no Pygame permitem desenhar formas geométricas na tela. Esses formulários representam os primeiros passos na criação de um jogo.

Vamos examinar a seguinte ilustração de um formulário sendo desenhado em uma tela.

Exemplo -

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

Saída:

Como desenvolver um jogo em Python

Explicação:

O programa Python fornecido cria uma janela gráfica com diferentes formas geométricas desenhadas usando o pacote Pygame. O programa cria uma janela Pygame de 400x300 pixels e, em seguida, inicia um loop que monitora eventos o tempo todo, garantindo que a janela permaneça aberta até que o usuário a feche. Ele limpa a tela no início deste loop e então usa as rotinas de desenho do Pygame para criar uma variedade de formas com cores e larguras de linha variadas. Essas formas incluem linhas, polígonos, elipses, círculos e arcos. Cada formulário tem suas coordenadas e propriedades adequadas definidas. Por último, 'pygame.display.flip()' é usado para atualizar a exibição. O programa encerra o pygame ao fechar a janela.

estados nos EUA

O aplicativo serve como um exemplo da adaptabilidade e variedade dos recursos de desenho do Pygame e fornece uma estrutura para o desenvolvimento de aplicativos gráficos interativos. Os desenvolvedores podem criar uma vasta gama de componentes visuais dentro do ambiente gráfico do Pygame ajustando parâmetros como coordenadas, cores e larguras de linha. Isso permite a construção de aplicações multimídia interativas, jogos e simulações.

Exemplo - Desenvolvendo jogo Snake usando Pygame

Programa -

python converte bytes em string
 # 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() </=>

Saída:

Como desenvolver um jogo em Python

Se a cobra se tocar, o jogo será encerrado e a seguinte mensagem será exibida.

Como desenvolver um jogo em Python

Para retomar, basta clicar no botão OK. O terminal Pycharm exibe nossa pontuação (usamos o IDE Pycharm, mas você pode usar qualquer IDE Python).

Como desenvolver um jogo em Python

Explicação:

O script Python fornecido usa o pacote Pygame para criar um jogo Snake simples. Ele estabelece classes tanto para a Cobra quanto para os cubos separados que compõem seu corpo. Pygame é usado para configurar a janela do jogo, que apresenta uma estrutura de grade e uma cobra em movimento. Depois de comer um cubo de 'lanche', a cobra se alonga e, se bater em si mesma ou nas paredes limítrofes, o jogo termina.

Para gerenciar a direção da cobra, gerar lanches em pontos aleatórios da grade, detectar colisões entre a cabeça e o corpo da cobra, atualizar o estado do jogo e redesenhar a janela do jogo, a lógica do jogo deve lidar com a entrada do usuário. Para controlar as interações do jogo e atualizações visuais, o script faz uso dos métodos de desenho e manipulação de eventos do Pygame. Ele também possui um recurso básico de caixa de mensagens que usa Tkinter para mostrar mensagens aos jogadores, como quando eles perdem um jogo. No geral, o roteiro mostra ideias-chave na programação do jogo Pygame e oferece uma versão rudimentar do antigo jogo Snake.