【python教程入门学习】教你如何在Pygame 中移动你的游戏角色

707 阅读3分钟

Pygame是一组跨平台的 Python 模块,专为编写视频游戏而设计。它包括旨在与 Python 编程语言一起使用的计算机图形和声音库。您可以使用 pygame 创建不同类型的游戏,包括街机游戏、平台游戏等等。

使用的图像:


你可以控制玩家的移动。为此,首先使用 pygame 的 display.set_mode() 方法创建一个显示对象,并使用 pygame 的 image.load() 方法添加玩家的精灵。set_mode() 函数用于初始化显示表面或窗口。size 参数是一对代表宽度和高度的数字。flags 参数是附加选项的集合。depth 参数表示用于颜色的位数。

语法:

set_mode(size=(0, 0), flags=0, depth=0, display=0, vsync=0)

创建一个变量来存储玩家的速度。设置玩家的初始坐标。现在,根据键盘事件(即键状态改变时发生的事件)更改播放器的 x 和 y 坐标。

blit(surface,surfacerect) 函数用于在屏幕上绘制图像。

语法:

blit(surface, surfacerect)

为了从队列中收集所有事件,使用事件模块的 get() 函数,然后我们使用 for 循环迭代所有事件。

语法:

get(eventtype=None)

使用显示模块的 update() 函数更新屏幕。最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃苦,建议你可以价位@762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~

语法:

update(rectangle=None)

下面是实现

示例:玩家移动程序

# 导入 pygame 模块
import pygame
from pygame.locals import *
  
# 启动 pygame 并授予使用 pygame 功能的权限
pygame.init()
  
# 创建特定尺寸的显示面对象
window = pygame.display.set_mode((600, 600))
  
# 在窗口中添加标题
pygame.display.set_caption('Player Movement')
  
# 添加玩家精灵
image = pygame.image.load(r'haiyong.png')
  
  
# 将玩家的初始坐标存储在两个变量中,即 x 和 y
x = 100
y = 100
  
# 创建一个变量来存储玩家移动的速度
velocity = 12
  
# 创建无限循环
run = True
while run:
  
    # 用白色填充背景
    window.fill((255, 255, 255))
  
    # 在 x 和 y 坐标处显示玩家精灵
    window.blit(image, (x, y))
  
    # 迭代 pygame.event.get() 方法返回的 Event 对象列表。
    for event in pygame.event.get():
  
        # 如果事件类型为 QUIT,则关闭窗口和程序
        if event.type == pygame.QUIT:
            run = False
            pygame.quit()
            quit()
  
        # 如果事件类型为 KEYDOWN,即按下键盘按钮,则检查事件键
        if event.type == pygame.KEYDOWN:
  
            # 如果按下的按钮是左箭头键,则减小 x 坐标
            if event.key == pygame.K_LEFT:
                x -= velocity
  
            # 如果按下的按钮是右箭头键,则增加 x 坐标
            if event.key == pygame.K_RIGHT:
                x += velocity
  
            # 如果按下按钮是向上箭头键,则减小 y 坐标
            if event.key == pygame.K_UP:
                y -= velocity
  
            # 如果按下按钮是向下箭头键,则增加 y 坐标
            if event.key == pygame.K_DOWN:
                y += velocity
  
        # 将表面对象绘制到屏幕上
        pygame.display.update()

输出:

玩家也可以连续移动。为此,除了要进行一些更改外,其他一切都保持不变。在这里,我们创建了一个新的时钟对象来使用 clock() 控制游戏的帧速率。最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃苦,建议你可以价位@762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~

语法

Clock()

创建一个新变量(名为 key_pressed_is)来存储用户按下的键。为此,我们使用 key 模块的 get_pressed() 函数。