pygame小游戏打飞机_3键盘事件
键盘事件
通过判断键盘按下的方向键执行位移指令
# 引用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()
如下所示当按方向键(左、右)能控制飞机移动则成功

pygame小游戏打飞机_3键盘事件的更多相关文章
- 微信小游戏 demo 飞机大战 代码分析(四)(enemy.js, bullet.js, index.js)
微信小游戏 demo 飞机大战 代码分析(四)(enemy.js, bullet.js, index.js) 微信小游戏 demo 飞机大战 代码分析(一)(main.js) 微信小游戏 demo 飞 ...
- 微信小游戏 demo 飞机大战 代码分析 (一)(game.js, main.js)
微信小游戏 demo 飞机大战 代码分析(一)(main.js) 微信小游戏 demo 飞机大战 代码分析(二)(databus.js) 微信小游戏 demo 飞机大战 代码分析(三)(spirit. ...
- 微信小游戏 demo 飞机大战 代码分析 (三)(spirit.js, animation.js)
微信小游戏 demo 飞机大战 代码分析(三)(spirit.js, animation.js) 微信小游戏 demo 飞机大战 代码分析(一)(main.js) 微信小游戏 demo 飞机大战 代码 ...
- 微信小游戏 demo 飞机大战 代码分析 (二)(databus.js)
微信小游戏 demo 飞机大战 代码分析(二)(databus.js) 微信小游戏 demo 飞机大战 代码分析(一)(main.js) 微信小游戏 demo 飞机大战 代码分析(三)(spirit. ...
- Python小游戏之 - 飞机大战美女 !
用Python写的"飞机大战美女"小游戏 源代码如下: # coding=utf-8 import os import random import pygame # 用一个常量来存 ...
- Python小游戏之 - 飞机大战 !
用Python写的"飞机大战"小游戏 源代码如下: # coding=utf-8 import random import os import pygame # 用一个常量来存储屏 ...
- pygame小游戏之坦克大战
以前在学校的时候无聊的学了会pygame.看了大概一周的教学视频,做出来个坦克大战的小游戏 Python3.5 pycharm import pygame,sys,time from random ...
- 微信demo小游戏:飞机大战从无到有
微信demo游戏飞机大战从无到有 现在创建新项目会默认给飞机大战的demo,这里给大家从基础开始讲解游戏的从无到有是怎么实现的. 具体实现步骤: 创建背景图->背景图运动起来->创建飞机并 ...
- Pygame小游戏练习二
@Python编程从入门到实践 Python项目练习 四.创建Ship类 建立ship.py,创建Ship类,管理飞船行为. # ship.py import pygame class Ship(): ...
- Pygame小游戏练习一
@Python编程从入门到实践 Python项目练习 一.安装Python包Pygame 通过pip安装包工具安装 python3 -m pip --version #查看是否安装pip 确定安装pi ...
随机推荐
- 梯度下降(Gradient Descent)法
梯度下降法(Gradient Descent)是求解无约束最优化问题最常用的方法之一,它是一种迭代方法,每一步的主要操作就是求解目标函数的梯度向量,将当前位置的负梯度方向作为搜索方向. 直观的表示可用 ...
- WPF 由TreeView想到的 DataTemplate,HierarchicalDataTemplate
DataTemplate简而言之,解决的就是后台代码中的类以怎么样的形式展现在xaml前台代码中的问题. 所以DataTemplate一般都要指定DataType,一般放在resource中,而Hie ...
- Itex+freemarker 导出PDF文件时✓无法正常显示
在使用Itex+freemarker 导出PDF文件时✓无法正常显示 在网上看到了以下思路:经过实验后是靠谱的 1.首先打开一个word文件,输入这个特殊字符,然后在字体选择框里看见这个特殊字符所用的 ...
- .NET周刊【5月第3期 2025-05-18】
国内文章 理解 C# 中的各类指针 https://www.cnblogs.com/eventhorizon/p/18873400 本文介绍了C#中的各种指针,包括对象引用.指针.IntPtr.函数指 ...
- MVVM-命令模式的实现与应用
MVVM-命令模式的实现与应用 本文同时为b站WPF课程的笔记,相关示例代码 绑定 这个其实前面已经讲过一部分 使用{Binding}设置数据绑定,将控件的属性绑定到 ViewModel 的相应属性. ...
- 【洛谷有题】NOI 笔试题库(非初赛)订正
传送门 第一次做,那个成绩可是一个惨不忍睹-- 我还是想说--我虽然要用Linux,但是不一定要用到指令啊(吧)--编译啥的我可以用Vim|guide啊-- Linux 中为文件改名使用的命令是: m ...
- IFREAD's Web 的出版说明
关于lijnf.top的发布说明 一名高中生开发的个人Web IFREAD's Web 前言 由于主播是高中生,所以肯定不可能每天都用来开发网站,主播计划每隔1-2个月进行一次较大的更新,不定期对小功 ...
- kubernetes主流网络方案Flannel分析
一.Flannel简单说明 Flannel是kubernetes集群的CNI网络插件之一,实质上是一种overlay网络,flannel支持多种网络转发策略,常用的vxlan.hostgw等. 二.F ...
- ChatMoney让你变成HR高手!
本文由 ChatMoney团队出品 在快节奏的现代职场中,招聘是每一个企业都绕不开的重要环节.然而,传统的招聘流程往往繁琐而低效,从海量简历的筛选,再到后续的评估与决策,每一个环节都耗费着HR人员大量 ...
- 微信小程序实现用户进行推客的注册绑定
微信推客注册参数解析(UniApp) 这篇文章主要是 uniapp 实现小程序对接推客用户注册,聚焦微信生态推客业务的注册流程解析与 UniApp,结合实战避坑经验. 一.接口参数解析 先让后端调用微 ...