Skip to content

Latest commit

 

History

History
executable file
·
200 lines (193 loc) · 8.72 KB

indice.md

File metadata and controls

executable file
·
200 lines (193 loc) · 8.72 KB

Sumário

Sumário

e livro é destinado? - Pág. i

Sobre o Livro - Pág. ii

Capítulo 1 - Instalando o Python e o Pygame - Pág. 1

*[O que Você Deve Saber Antes de Começar] *[Baixando e Instalando o Python - Pág. 1] *[Instruções para Windows - Pág. 1]

  • Instruções para Mac OS X - Pág. 2
  • Instruções para Ubuntu e Linux - Pág. 2
  • Iniciando o Python - Pág. 2
  • Instalando o Pygame - Pág. 3
  • Como Usar Esse Livro - Pág. 4
  • Os Programas Apresentados - Pág. 4
  • Baixando Arquivos Gráficos e de Som - Pág. 4
  • Número de Linhas e Espaços - Pág. 4
  • Quebra automática de Texto Nesse Livro - Pág. 5
  • Checando Seu Código Online - Pág. 6
  • Mais Links Informativos em http://invpy.com - Pág. 6

Capítulo 2 - Noções Básicas de Pygame - Pág. 7

  • GUI vs. CLI - Pág. 7
  • Código-fonte para Hello World com Pygame - Pág. 7
  • Configurando um Progama do Pygame - Pág. 8
  • Game Loops e Game States - Pág. 10
  • Objetos pygame.event.Event - Pág. 11
  • O Evento QUIT e a Função pygame.quit() - Pág. 12
  • Coordenadas do Pixel - Pág. 13
  • Um lembrete sobre Funções, Métodos, Funções Construtoras, e Funções em Módulos (e a Diferença entre eles) - Pág. 14
  • Objetos Surface e a Janela - Pág. 15
  • Cores - Pág. 16
  • Cores Transparentes - Pág. 17
  • Objetos pygame.Color - Pág. 18
  • Objetos Rect - Pág. 18
  • Funções Primitivas de Desenho - Pág. 20
  • Objetos pygame.PixelArray - Pág. 23
  • A Função pygame.display.update() - Pág. 24
  • Animação - Pág. 24
  • Frames Por Segundo e Objetos pygame.time.Clock - Pág. 27
  • Desenhando Imagens com pygame.image.load() and blit() - Pág. 28
  • Fontes - Pág. 28
  • Anti-Aliasing - Pág. 30
  • Reprodução de Sons - Pág. 31
  • Sumário - Pág. 32

Capítulo 3 - Jogo da Memória - Pág. 33

  • Como Jogar o Jogo da Memória - Pág. 33
  • Loops for Aninhados - Pág. 33
  • Código-fonte do Jogo da Memória - Pág. 34
  • Créditos e Imports - Pág. 42
  • Números Mágicos são Ruins - Pág. 42
  • Checagens com Declarações assert - Pág. 43
  • Dizendo Se um Número é Par ou Ímpar - Pág. 44
  • Falha Precoce e Falha Frequente! - Pág. 44
  • Deixando o Código-fonte Bonito - Pág. 45
  • Usando Constantes ao invés de Strings - Pág. 46
  • Certificando-se que Nós Temos Ícones o suficiente - Pág. 47
  • Tuplas vs. Listas, Imutáveis vs. Mutáveis - Pág. 47
  • Tuplas de Um Item Precisam de Uma Vírgula à Direita - Pág. 48
  • Conversão entre Listas e Tuplas - Pág. 49
  • A Declaração global, e Porque as Variáveis Globais são do Mal - Pág. 49
  • Estruturas de Dados e Listas 2D - Pág. 51
  • A Animação "Iniciar o Jogo" - Pág. 52
  • O Loop do Jogo - Pág. 52
  • O Evento Loop de Tratamento - Pág. 53
  • Checando em Qual Caixa o Cursor do Mouse Está - Pág. 54
  • Manipulando a Primeira Caixa Clicada - Pág. 55
  • Tratando Par de Ícones Incompatíveis - Pág. 56
  • Tratando se o Jogador Ganhou - Pág. 56
  • Desenhando o Game State na Tela - Pág. 57
  • Criando a Estrutura de Dados "Caixas Reveladas" - Pág. 58
  • Criando a Estrutura de Dados do Quadro: Passo 1 - Obter Todos os Ícones Possíveis - Pág. 59
  • Passo 2 - Misturar e Truncar a Lista de Todos os Ícones - Pág. 59
  • Passo 3 - Posicionando os Ícones no Quadro - Pág. 59
  • Dividindo uma Lista em uma Lista de Listas - Pág. 60
  • Sistemas de Diferentes Coordenadas - Pág. 61
  • Convertendo de Coordenadas de Pixel para Coordenadas de Caixa - Pág. 62
  • Desenhando um Ícone, e Syntactic Sugar - Pág. 63
  • Obtendo a Forma e Cor dos Icones nos Espaços do Quadro com Syntactic Sugar - Pág. 64
  • Desenhando a Parte Coberta da Caixa - Pág. 64
  • Tratando as Animações de Revelando e Escondendo - Pág. 65
  • Desenhando o Quadro Inteiro - Pág. 66
  • Desenhando o Realçe - Pág. 67
  • A Animação de "Iniciar o Jogo" - Pág. 67
  • Revelando e Escondendo os Grupos de Caixas - Pág. 68
  • A Animação de "Você Venceu" - Pág. 68
  • Dizendo se o Jogador Ganhou - Pág. 69
  • Por que se Preocupar em ter uma Função main()? - Pág. 69
  • Por que se Preocupar com Legibilidade? - Pág. 70
  • Resumo, e uma sugestão de Hacking - Pág. 74

Capítulo 4 - Slide Puzzle - Pág. 77

  • Como Jogar Slide Puzzle - Pág. 77
  • Código-fonte para o Slide Puzzle - Pág. 77
  • Segundo Verso, Igual ao Primeiro - Pág. 85
  • Configurando os Botões - Pág. 89
  • Sendo Esperto Usando Códigos Idiotas - Pág. 87
  • O Loop do Jogo Principal - Pág. 88
  • Clicando nos Botões - Pág. 89
  • Deslizando tiles com o Mouse - Pág. 90
  • Deslizando tiles com o Teclado - Pág. 90
  • Truque "Equal To One Of" com o Operador in - Pág. 91
  • WASD e Teclas de Seta - Pág. 91
  • Realmente fazendo o Azulejo Deslizar - Pág. 92
  • IDLE e Concluindo os Programas Pygame - Pág. 92
  • Checando por um Evento Específico, e Postando Eventos na Fila de Eventos da Pygame - Pág. 92
  • Criando a Estrutura de Dados do Quadro - Pág. 93
  • Não Rastreando a Posição em Branco - Pág. 94
  • Fazendo um Movimento por meio da Atualização da Estrutura de Dados do Quadro - Pág. 94
  • Quando NÃO Usar uma Asserção - Pág. 95
  • Obtendo um não tão aleatório Movimento - Pág. 96
  • Convertendo as Coordenadas dos tiles para Coordenadas de Pixel - Pág. 97
  • Convertendo de Coordenadas de Pixel para Coordenadas do Quadro - Pág. 97
  • Desenhando um tile - Pág. 97
  • Fazendo o Texto Aparecer na Tela - Pág. 98
  • Desenhando o Quadro - Pág. 99
  • Desenhando a Borda do Quadro - Pág. 99
  • Desenhando os Botões - Pág. 100
  • Animando os Deslizes dos tiles - Pág. 100
  • O Método de Superfície copy() - Pág. 101
  • Criando um Novo Quebra-Cabeça - Pág. 103
  • Animando o Reset do Quadro - Pág. 104
  • Tempo vs. tradeoffs de memória - Pág. 105
  • Ninguem se importa com alguns bytes - Pág. 106
  • Ninguem se importa com alguns milhões de Nanosegundos - Pág. 107
  • Sumário - Pág. 107 Capítulo 5 - Simulate - Pág. 108
  • Como jogar Simulate - Pág. 108
  • Código fonte do Simulate - Pág. 108
  • O conteúdo inicial - Pág. 114
  • Configurando os botões - Pág. 115
  • A função main() - Pág. 115
  • Algumas variáveis locais usadas nesse programa - Pág. 116
  • Desenhando o quadro e tratando inputs - Pág. 117
  • Verificando cliques do Mouse - Pág. 118
  • Verificando o pressionamento do teclado - Pág. 118
  • Os dois estados do loop do jogo - Pág. 119
  • Identificando se o jogador apertou os botões certos - Pág. 119
  • Epoch Time - Pág. 121
  • Desenhando o quadro na tela - Pág. 122
  • A mesma velha função terminate() - Pág. 122
  • Reusando constantes - Pág. 123
  • Animando o botão flash - Pág. 123
  • Desenhando os botões - Pág. 126
  • Animando a troca do fundo - Pág. 126
  • A animação de game over - Pág. 127
  • Convertendo coordenadas de pixel para botões - Pág. 129
  • Explícito é melhor que Implícito - Pág. 129 Capítulo 6 - Wormy - Pág. 131
  • Como jogar Wormy - Pág. 131
  • Código fonte do Wormy - Pág. 131
  • O grid - Pág. 137
  • O código de inicialização - Pág. 137
  • A função main() - Pág. 138
  • Uma função separada runGame() - Pág. 139
  • Tratando o Event loop - Pág. 139
  • Detecção de colisão - Pág. 140
  • Detectando colisões com a maçã - Pág. 141
  • Movendo a minhoca - Pág. 142
  • O metódo insert() da classe List - Pág. 142
  • Desenhando a tela - Pág. 143
  • Desenhando um texto "Pressione alguma tecla" na tela - Pág. 143
  • A função checkForKeyPress() - Pág. 143
  • A tela de start - Pág. 144
  • Girando o texto da tela de start - Pág. 145
  • Giros não são perfeitos - Pág. 146
  • Decidindo onde a maçã aparece - Pág. 147
  • Telas de Game Over - Pág. 147
  • Funções de desenho - Pág. 148
  • Não reuse nomes de variáveis - Pág. 151 Capítulo 7 - Tetromino - Pág. 153
  • Como jogar Tetromino - Pág. 153
  • Algumas nomenclaturas do Tetromino - Pág. 153
  • Código fonte do Tetromino - Pág. 154
  • O usual código de configuração - Pág. 166
  • Configurando constantes de tempo para teclas que foram mantidas pressionadas - Pág. 166
  • Mais código de configuração - Pág. 166
  • configurando os templates de peças - Pág. 168
  • Dividindo uma linha de código em muitas linhas - Pág. 171
  • A função main() - Pág. 172
  • O início de um novo jogo - Pág. 173
  • O loop do jogo - Pág. 174
  • O loop de tratamento de eventos - Pág. 174
  • Pausando o jogo - Pág. 174
  • Usando variáveis de movimento para tratar entradas do usuário - Pág. 175
  • Verificando se um movimento pro lado ou um giro é válido - Pág. 175
  • Encontrando o fundo - Pág. 178
  • Movendo enquanto uma tecla é mantida pressionada - Pág. 179
  • Deixando a peça cair naturalmente - Pág. 182
  • Desenhando tudo na tela - Pág. 182
  • makeTextObjs(), um função para criar textos - Pág. 183
  • A mesma velha função terminate() - Pág. 183
  • Aguardando por um Key Press Event com a função checkForKeyPress() - Pág. 183
  • showTextscreen(), uma função genérica para textos - Pág. 184
  • A função checkForQuit() - Pág. 185
  • A função calculateLevelAndFallFreq() - Pág. 185