Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

QUEM SOU EU @jjpaulo2

Slide 3

Slide 3 text

TUTORIAL ALPHA-0.0.1 Minicurso de PyGame ministrado na VII SEIFPI em 2018

Slide 4

Slide 4 text

MOTIVAÇÃO The Last of Us Part II (2020) God of War (2018)

Slide 5

Slide 5 text

POR QUE PYGAME?

Slide 6

Slide 6 text

PROJETOS DA COMUNIDADE Doom, por StanislavPetrovV Barbie Seahorse Adventures, por philhassey, trick, pekuja, tim, DrPetter

Slide 7

Slide 7 text

INSTALAÇÃO Assumindo que você já preparou um ambiente virtual do Python, apenas execute o seguinte comando. Ou se preferir usar o Pipenv.

Slide 8

Slide 8 text

TESTANDO A BIBLIOTECA

Slide 9

Slide 9 text

TESTANDO A BIBLIOTECA

Slide 10

Slide 10 text

INSTALAÇÃO (3D) Assumindo que você está dentro do ambiente virtual do Python utilizado previamente, apenas execute o seguinte comando. Ou se preferir usar o Pipenv.

Slide 11

Slide 11 text

TESTANDO A BIBLIOTECA (3D)

Slide 12

Slide 12 text

PRIMEIRO JOGO

Slide 13

Slide 13 text

1 2 3 4 5 6 7 8 9 10 11 12 13 14 CÓDIGO FUNCIONAL

Slide 14

Slide 14 text

16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44

Slide 15

Slide 15 text

RESULTADO

Slide 16

Slide 16 text

COMPREENDENDO CONCEITOS

Slide 17

Slide 17 text

JANELAS 1 2 3 4 5 6 Onde todo o conteúdo que você vai criar será exibido.

Slide 18

Slide 18 text

LOOP PRINCIPAL 1 2 3 4 5 6 7 8 9 10 11 12 13 O loop que acontece durante a execução do jogo. É onde toda a lógica irá ser moldada.

Slide 19

Slide 19 text

QUADROS / CLOCK 1 2 3 4 5 6 7 8 9 10 11 12 13 O relógio que marca e define a quantidade de loops que acontecerão em 1 segundo.

Slide 20

Slide 20 text

CORES 1 2 3 4 5 6 Cores no PyGame são representadas por tuplas do tipo (red: int, green: int, blue: int).

Slide 21

Slide 21 text

EVENTOS 1 2 3 4 5 6 7 8 9 10 11 Ações que podem ser tratadas durante o loop principal do seu jogo. Elas podem ser de vários tipos e possuem parâmetros que podem ser lidos para tratá-los.

Slide 22

Slide 22 text

EVENTOS (TIPOS) TIPO DE EVENTO PARÂMETROS QUIT none ACTIVEEVENT gain, state KEYDOWN key, mod, unicode, scancode KEYUP key, mod MOUSEMOTION pos, rel, buttons MOUSEBUTTONUP pos, button MOUSEBUTTONDOWN pos, button VIDEORESIZE size, w, h USEREVENT code

Slide 23

Slide 23 text

RETÂNGULOS 1 2 3 4 5 6 7 8 9 Retângulos no PyGame são declarados por objetos da forma pygame.Rect(left: float, top: float, width: float, height: float).

Slide 24

Slide 24 text

COLISÕES 1 2 3 4 5 6 7 8 9 10 11 12 13 14 A classe Rect possui métodos capazes de verificar colisões.

Slide 25

Slide 25 text

DESAFIO 1 Construa um jogo com dois retângulos na tela. Você deverá controlar um deles e assim que ele colidir com o segundo, este deverá mudar sua posição na tela.

Slide 26

Slide 26 text

SUPERFÍCIES 1 2 3 4 5 6 7 8 9 10 Elas nos permitem ir além de apenas retângulos coloridos e nos dá o poder de começar a manipular imagens.

Slide 27

Slide 27 text

SUPERFÍCIES 1 2 3 4 5 Para usar imagens, basta usar o seguinte método.

Slide 28

Slide 28 text

DESAFIO 2 Construa um jogo com uma imagem de cenário e uma imagem de personagem que consegue se mover.

Slide 29

Slide 29 text

MÚSICA Podemos tocar músicas no nosso jogo com a ajuda do pacote pygame.mixer. 1 2 3 4 5 6 7 8 9 10 11 12 13

Slide 30

Slide 30 text

DESAFIO 3 Construa um jogo com dois retângulos na tela. Cada um deve tocar uma música específica ao ser clicado.

Slide 31

Slide 31 text

SPRITES São sequências de imagens que geram uma animação. Iremos implementa-los como classes filhas de pygame. Sprite. 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Slide 32

Slide 32 text

ONDE CONSEGUIR SPRITES?

Slide 33

Slide 33 text

FOLHA DE SPRITE

Slide 34

Slide 34 text

DESAFIO 4 Adicione um pouco de movimento ao desafio 2. Implemente uma classe de sprites e dê vida ao seu personagem.

Slide 35

Slide 35 text

PARABÉNS POR TER CHEGADO ATÉ AQUI!

Slide 36

Slide 36 text

LEITURA COMPLEMENTAR Introdução ao Desenvolvimento de Jogos em Python com PyGame, de Harrison Kinsley e Will McGugan.

Slide 37

Slide 37 text

@jjpaulo2