pygame: inicio #1

Discussão em 'Dicas e tutoriais' iniciado por kodo no kami, 5 Setembro 2019.

  1. kodo no kami
    Offline

    kodo no kami Membro Conhecido

    Afiliado:
    16 Dezembro 2015
    Mensagens:
    235
    Sexo:
    Masculino
    Avaliações:
    +312 / -0
    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

    Código (Forge Crash):
    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

    Código (Forge Crash):
    #!/usr/bin/python3

    import pygame
    [​IMG]

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

    Código (Forge Crash):
    #!/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

    Código (Forge Crash):
    #!/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

    Código (Forge Crash):
    #!/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

    Código (Forge Crash):
    #!/usr/bin/python3

    import pygame

    pygame.init()

    largura = (300,200)

    janela = pygame.display.set_mode(largura)

    while True:
       pass
    [​IMG]

    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

    Código (Forge Crash):
    #!/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)

    Código (Forge Crash):
    #!/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)

    Código (Forge Crash):
    #!/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

    Código (Forge Crash):
    #!/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()
    [​IMG]

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

    by kodo no kami
     
    • Gostei Gostei x 1
  2. Animadoria
    Offline

    Animadoria Membro Conhecido VIP Sabotador.com

    Afiliado:
    17 Agosto 2014
    Mensagens:
    752
    Avaliações:
    +588 / -2
    Apelido no Minecraft:
    Animadoria
    Ótimo tutorial.
    Quem quiser fazer um jogo tipo uma histórinha (visual novel), recomendo usar Ren'py
     
    • Amigável Amigável x 1
  3. kodo no kami
    Offline

    kodo no kami Membro Conhecido

    Afiliado:
    16 Dezembro 2015
    Mensagens:
    235
    Sexo:
    Masculino
    Avaliações:
    +312 / -0
    bem legal esse Ren'py, não conhecia essa engine não depois vou da uma estudada nela \o
     

Compartilhe esta Página