查看: 92|回覆: 0

pygame小游戏打飞机_3键盘事件

[複製鏈接]

2

主題

0

回帖

0

積分

热心网友

金币
0
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2012-5-6
發表於 2025-7-29 11:56:00 | 顯示全部樓層 |閲讀模式

键盘事件

通过判断键盘按下的方向键执行位移指令

# 引用pygame
import pygame

# 使程序初始化
pygame.init()
# 设置图像参数
screen = pygame.display.set_mode((480, 700))
# 设置标题
pygame.display.set_caption('打飞机')
# 引入图片
icon = pygame.image.load('ufo.png')
pygame.display.set_icon(icon)
# 引入背景图片
bgImg = pygame.image.load('background.png')
# 引入玩家图片
playerImg = pygame.image.load('player.png')
# 定义玩家初始位置
playerX = 225
playerY = 350
# 新增 定义变量表示运动距离
playerStep = 0

running = True
# 进行循环 游戏主循环
while running:
    # 绘制背景
    screen.blit(bgImg, (0, 0))
    # 绘制玩家
    screen.blit(playerImg, (playerX, playerY))
    # 获取游戏事件队列中的所有事件(涉及到玩家的各种交互,如鼠标点击、键盘操作、窗口事件等)
    for event in pygame.event.get():
        # 如果事件是QUIT事件,如点击窗口的关闭按钮,则退出循环
        if event.type == pygame.QUIT:
            # 退出循环
            running = False
        # 新增 KEYDOWN判断键盘按下的类型
        if event.type == pygame.KEYDOWN:
            # 新增 判断按下向左右键进行移动赋值
            if event.key == pygame.K_RIGHT:
                playerStep = 1
            elif event.key == pygame.K_LEFT:
                playerStep = -1
        # 新增 KEYUP判断键盘抬起的类型
        if event.type == pygame.KEYUP:
            # 新增 抬起键盘时将移动距离改为0
            playerStep = 0

    # 新增 进行位移
    playerX += playerStep
    # 控制边界
    if playerX > 378:
        playerX = 378
    if playerX < 0:
        playerX = 0
    if playerY > 572:
        playerY = 572
    if playerY < 0:
        playerY = 0

    # 界面更新
    pygame.display.update()

如下所示当按方向键(左、右)能控制飞机移动则成功

 



来源:https://www.cnblogs.com/cyber120/p/19010535
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部