Jump to content
Sign in to follow this  
kodo no kami

[tutorial] pygame: inicio #1

Recommended Posts

Galera o pygame é um modulo voltado para o desenvolvimento de games 2D usando a linguagem de programação python, esse modulo é bastante semalhante a biblioteca SDL sendo o seu funcionamento bem mais simples. Com o pygame a gente consegue criar janelas, carrega imagens, criar sprites, manipular som e ate manipular teclado, mouse e joystick. Para começar a desenvolver em pygame é necessario o python e o modulo pygame instalado, uma das formas de instalar o pygame é utilizando pip

python3 -m pip install pygame

com o modulo instalado basta importar ele no nosso codigo, quando voce importa ele no codigo vai exibir uma menssagem no terminal com a versão o pygame

#!/usr/bin/python3
	import pygame

dpflE4p.png

primeiro metodo que vamos usar é o pygame.init para iniciar o pygame

#!/usr/bin/python3
	import pygame
	pygame.init()

para criar uma janela usamos o metodo pygame.display.set_mode, passamos como argumento pra ele uma tupla com a dimessão da janela, tambem pegamos como retorno a superficie da janela para conseguir manipular mais tarde

#!/usr/bin/python3
	import pygame
	pygame.init()
	janela = pygame.display.set_mode((300,200))

o interessante seria colocar os valores em uma variavel e manda essa variavel para o metodo

#!/usr/bin/python3
	import pygame
	pygame.init()
	largura = (300,200)
	janela = pygame.display.set_mode(largura)

outra coisa que precisamos fazer é criar um loop infinito para que o programa não finalize

#!/usr/bin/python3
	import pygame
	pygame.init()
	largura = (300,200)
	janela = pygame.display.set_mode(largura)
	while True:
    pass

CdWqbpM.png

quando a gente fecha aquela janela ela simplesmente não fecha, isso  acontece porque o jogo não ta tratando nenhum evento ainda, para que isso seja possivel usamos o metodo pygame.event.get para retornar todos os evento, podemos usar o laço for e manipular cada um deles separadamente

#!/usr/bin/python3
	import pygame
	pygame.init()
	largura = (300,200)
	janela = pygame.display.set_mode(largura)
	while True:
    for evento in pygame.event.get():
        pass

pelo atributo type daquele evento podemos detectar o tipo de evento, nesse caso vamos pegar eventos do tipo QUIT, depois basta finalizar com metodo quit e exit (com isso quando a gente fechar a janela ela vai fecha)

#!/usr/bin/python3
	import pygame
	pygame.init()
	largura = (300,200)
	janela = pygame.display.set_mode(largura)
	while True:
    for evento in pygame.event.get():
        if evento.type == pygame.QUIT:
            pygame.quit()
            exit(0)

no nosso loop principal a gente precisa limpar a tela e desenhar o objeto novamente na tela ja que a imagem em um jogo não é estatica e sim dinamica desenhada em um certo tempo, para limpar a tela usamos o metodo fill daquela superfice desejada (nesse caso a da janela), nesse metodo passamos como argumento a cor que vamos pintar a tela (sendo uma tupla de 3 cores representando o RGB)

#!/usr/bin/python3
	import pygame
	pygame.init()
	largura = (300,200)
	janela = pygame.display.set_mode(largura)
	while True:
    for evento in pygame.event.get():
        if evento.type == pygame.QUIT:
            pygame.quit()
            exit(0)
            
    janela.fill((255,255,255))

para desenhar a tela novamente usamos o metodo pygame.display.flip

#!/usr/bin/python3
	import pygame
	pygame.init()
	largura = (300,200)
	janela = pygame.display.set_mode(largura)
	while True:
    for evento in pygame.event.get():
        if evento.type == pygame.QUIT:
            pygame.quit()
            exit(0)
            
    janela.fill((255,255,255))
    pygame.display.flip()

opP3DJ3.png

bom galera essa é a primeira parte dessa sequencia de tutoriais sobre pygame, então ate a proxima porte \o

by kodo no kami

Edited by kodo no kami

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.