Explicação detalhada de todos os pontos de conhecimento do pgzero

Índice

 O que é pgzero?

instalação do pgzero

4. O início oficial!

1. Ajuste a cor de fundo

2. Importar papéis

3. Eventos do mouse

5. Evento chave

6. Função de atualização

1. Atributos do personagem

2. Introdução da função

7. Variáveis ​​globais e variáveis ​​locais

1. A diferença entre variáveis ​​globais e variáveis ​​locais

2. Como usar variáveis ​​globais em funções

8. Função de papel e função de janela

1. Função do papel

2. Função de janela

9, fim


 

 O que é pgzero?

O Python possui uma grande variedade de bibliotecas de terceiros em vários campos. Pygame é uma biblioteca de aplicativos do Python no campo do jogo, que pode ser usada para desenvolver vários jogos. Mas para iniciantes, ainda existem certos limites.

O pgzero (pygame zero) que quero compartilhar com vocês hoje é mais um pacote baseado no pygame, que torna muito conveniente o design de um jogo, especialmente adequado para o ensino na área de programação infantil e complementa o scratch.

instalação do pgzero

pip install pygame
pip install pgzero

 Isso é o que chamamos de: download do terminal pgzero library

Após a instalação, crie um novo documento de texto. Para abrir digite o seguinte código:

import pgzrun
pgzrun go()

Altere o nome abaixo para .py e a codificação para UTF-8

Em seguida, clique em salvar

Encontre este arquivo, clique em:

Você encontrará:

4. O início oficial!

1. Ajuste a cor de fundo

Código de exemplo:

import pgzrun
def draw():
   screen.fill((225,225,225))
pgzrun.go()
        

2. Importar papéis

Código de exemplo:

import pgzrun
zy = Actor('zy.png')
def draw():
   zy.draw()
pgzrun.go()
#也可以用draw()功能画出背景图

Obs: Você deve criar uma nova pasta de imagens no mesmo diretório do arquivo, e colocar todas as imagens dos personagens (devem estar em formato png) nela!

3. Eventos do mouse

1. Código básico:

import pgzrun
def on_mouse_down():
    #代码
pgzrun.go()

2. Obtenha a posição do mouse:

import pgzrun
def on_mouse_down(pos):
    print(pos)
pgzrun.go()

3. Pressione o botão esquerdo ou direito do mouse:

import pgzrun
def on_mouse_down(button):
    print(button)
pgzrun.go()

E o resultado da saída é:

mouse.LEFT#左键
#或者是:
mouse.RIGHT#右键

5. Evento chave

1. Função

A função de pressionar a tecla é on_key_down(), e a função de liberar a tecla é on_key_up() (também pode ser escrita em update() (atualizar a função de interface do jogo))

2. Teclas numéricas

A expressão das teclas numéricas em pgzero é: keyboard.K_1~8

3. Teclas de letras

O método de representação das teclas de letras é: keyboard.K_A~Z

4. Teclas de função

O método de expressão da tecla de função é: keyboard.K_(tecla de função (maiúsculas))

5. Quando o botão é pressionado, ocorre um evento

Código de amostra:

import pgzrun
def on_key_down():
    if keyboard.K_1:
        #代码
pgzrun.go()

6. Função de atualização

1. Atributos do personagem

Antes de falar sobre a função de atualização, deixe-me falar sobre os atributos do personagem.

Existem vários tipos de atributos de caracteres: orientação, imagem, etc.

Os atributos da classe de orientação são: x (coordenada x), y (coordenada y), bottom (linha inferior), top (linha superior), esquerda (linha esquerda), direita (linha direita)

Os atributos da classe picture são: image (imagem)

2. Introdução da função

A função de atualização é a função update(). Ele é como um loop while, usado para movimento de obstáculos e outros aspectos dos jogos de corrida. Quando o programa chamar a função update() uma vez, ele chamará a função draw() novamente!

Demonstração do código:

import pgzrun
zy = Actor('zy.png')
def draw():
    zy.draw()
def update():
#让角色zy上升
    zy.x += 3
pgzrun.go()

7. Variáveis ​​globais e variáveis ​​locais

Código de exemplo:

p1 = '手机'
def home():
    p2 = '座机'
home()

1. A diferença entre variáveis ​​globais e variáveis ​​locais

Se houver uma função def em um programa, a variável global será uma variável fora da função def. Essa é a variável p1 no código de exemplo. Uma variável local é uma variável dentro de uma função e só pode ser usada dentro da função. Essa é a variável p2 no código de amostra.

2. Como usar variáveis ​​globais em funções

Se você alterar um pouco o código de exemplo:

p = '手机'
def home():
    p = ‘座机’
home()
print(p)
#那么输出结果是:
#手机
#如何不在home功能内使用print语句也能输出 座机 呢?

Você vê os requisitos agora. Se você quiser usar variáveis ​​fora da função na função, você deve inseri-la na linha abaixo da instrução def:

global (variável global)

Dessa forma, o valor da variável global p é alterado para um telefone fixo e a saída também é um telefone fixo.

Nota: Este ponto de conhecimento deve ser lembrado, pois este conhecimento será muito comum.

8. Função de papel e função de janela

1. Função do papel

Funções de personagem são funções para criação de personagem, como um personagem tocando outro personagem e um personagem tocando um ponto na janela do jogo.

1, função colidir ()

A função colliderect() é para determinar se o personagem colide com outro personagem.

Código de amostra:

import pgzrun
player1 = Actor('1.png',[400,300])
player2 = Actor('2.png',[400,250])
def draw():
    player1.draw()
    player2.draw()
if player1.colliderect(player2):#角色1.colliderect(角色2)(也可以这样:角色1.colliderect(角色2))
   exit()#退出游戏

2, função de ponto de colisão ()

A função de collidepoint() é julgar se o personagem colide com um ponto.

Código de amostra:

import pgzrun
player1 = Actor('1.png)

2. Função de janela

9, fim

Compartilhe um código feito com pygame

#友情提示:请不要更改任何代码,谢谢!

import pgzrun


WIDTH = 1136
HEIGHT = 640
TITLE = 'P1 VS P2'
global bossX
bossX = 10
global zyX
zyX = 10
bg = Actor('bg.png')
zy = Actor('zy.png', [200, 420])
boss = Actor('boss.png', [900, 420])

def draw():
    bg.draw()
    zy.draw()
    boss.draw()
    # 写角色名字
    screen.draw.text('P1:' + str(zyX), [180, 30],fontsize=30,color='red')
    screen.draw.text('P2:' + str(bossX), [850, 30],fontsize=30,color='blue')
    #判断胜负
    if bossX == 0:
        print('P1玩家获胜')
        exit()
    elif zyX == 0:        
        print('P2玩家获胜')
        exit()
def update():
    # 判断壮猿移动
    if keyboard.K_A:
        zy.x = 200
    if keyboard.K_D:
        zy.right = 558
    # 判断boss移动
    if keyboard.K_LEFT:
        boss.left = 548
    if keyboard.K_RIGHT:
        boss.x = 900

    # 判断壮猿攻击、防御状态时,切换图片
    if keyboard.K_W:
        zy.image = 'zy1.png'
    elif keyboard.K_S:
        zy.image = 'zy2.png'
    else:
        zy.image = 'zy.png'
    # 判断boss攻击、防御状态时,切换图片
    if keyboard.K_UP:
        boss.image = 'boss1.png'
    elif keyboard.K_DOWN:
        boss.image = 'boss2.png'
    else:
        boss.image = 'boss.png'

    # 判断壮猿是否和boss发生碰撞
    if zy.colliderect(boss):
        if zy.image == 'zy1.png' and boss.image == 'boss.png':
            boss.x += 250
            global bossX
            bossX -= 1
        if boss.image == 'boss1.png' and zy.image == 'zy.png':
            zy.x -= 250
            global zyX
            zyX -= 1
        if zy.image == 'zy1.png' and boss.image == 'boss1.png':
            zy.x -= 250
            boss.x += 250
pgzrun.go()
#行数自己数!

Acho que você gosta

Origin blog.csdn.net/qiuweichen1215/article/details/130711794
Recomendado
Clasificación