python pygame模块按键延迟_pygame模块中键控命令不能实现方块移动,求解
# 导入pygame和sys模块
import pygame,sys
# 初始化pygame、生成屏幕对象screen、显示标题字幕
pygame.init()
screen = pygame.display.set_mode((500,500))
pygame.display.set_caption('hello world')
# 在屏幕(0, 0)的位置上绘制一个(50*50)大小的矩形
# 获取屏幕对象的矩形坐标
# 然后把矩形移动到屏幕指定的初始位置(屏幕正中央)
player = pygame.Rect(0, 0, 50, 50)
screen_rect = screen.get_rect()
player.centerx = screen_rect.centerx
player.centery = screen_rect.centery
# 设置上下左右移动标记,实现方块在按键以后持续移动
# 移动速度为 0.1 [否则移动太快无法看清楚方块的移动]
# 设置颜色值
moveLeft = False
moveRight = False
moveUp = False
moveDown = False
MOVESPEED = 0.1
BLACK=(0,0,0)
WHITE=(255,255,255)
# 因为centerx和centery不能存储小数,所以要设置中间变量
player_x = float(player.centerx)
player_y = float(player.centery)
# 进入游戏大循环
while True:
# 侦听事件,响应退出操作
for event in pygame.event.get():
if event.type==pygame.QUIT:
pygame.quit()
sys.exit()
# 侦听事件,响应按键操作
# 如果按下 键,则修改移动标记为True实现持续移动
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
moveLeft = True
elif event.key == pygame.K_RIGHT:
moveRight = True
elif event.key == pygame.K_UP:
moveUp = True
elif event.key==pygame.K_DOWN:
moveDown = True
# 侦听事件,响应松键操作
# 如果松开键,则修改移动标记为False停止移动
elif event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT:
moveLeft = False
elif event.key == pygame.K_RIGHT:
moveRight = False
elif event.key == pygame.K_UP:
moveUp = False
elif event.key == pygame.K_DOWN:
moveDown = False
# 如果移动标记为True并且方块player没有越过屏幕边界,那么持续移动
# 将中间变量的值存储到centerx和centery中去
# 从而改变方块的位置
if moveDown and player.bottom < screen_rect.bottom:
player_y += MOVESPEED
player.centery = player_y
if moveUp and player.top > screen_rect.top:
player_y -= MOVESPEED
player.centery = player_y
if moveLeft and player.left > screen_rect.left:
player_x -= MOVESPEED
player.centerx = player_x
if moveRight and player.right < screen_rect.right:
player_x += MOVESPEED
player.centerx = player_x
# 每次循环都用白色填充屏幕
# 么次循环重新绘制player方块
# 每次循环都让元素在屏幕上可见
screen.fill(WHITE)
pygame.draw.rect(screen, BLACK, player)
pygame.display.flip()
python pygame模块按键延迟_pygame模块中键控命令不能实现方块移动,求解相关推荐
- python pygame模块按键延迟_Python之pygame学习键盘事件操作(9)
pygame键盘事件操作 ✕ 什么是事件呢?按下键盘某个按键,鼠标移动,包括点击关闭按钮都可以算是事件操作. pygame中事件模块是pygame.event,官方说法是用于与事件和队列进行交互. 不 ...
- python pygame模块按键延迟_如何在python/pygame中延迟一件事情而不延迟其他事情?...
最简单的方法是使用事件(无论如何都要检查事件)import pygame pygame.init() screen = pygame.display.set_mode((200, 200)) # ou ...
- python pygame模块按键延迟_用pygame做游戏时,用pygame.KEYDOWN来实现的按键控制“不灵敏”能怎么解决?...
这样写就十分灵活了 就是每个按键添加了一个k变量来检测按键是否被按着. 每一对儿方向相对的按键加了一个f变量来记录两个按键谁最后按下的. speed=[x,y] for event in pygame ...
- python pygame K按键说明
python之 pygame按键 KeyASCII ASCII Common Name K_BACKSPACE \b backspace K_TAB \t tab K_CLEAR clear K_RE ...
- python pygame鼠标点击_pygame系列_mouse鼠标事件
pygame.mouse提供了一些方法获取鼠标设备当前的状态 '''pygame.mouse.get_pressed - get the state of the mouse buttons get ...
- Python dict keys方法:获取字典中键的序列
目录 描述 语法 使用示例 注意事项 函数返回的是一个可迭代序列,而不是列表 描述 dict.keys()方法是Python的字典方法,它将字典中的所有键组成一个可迭代序列并返回. 语法 dictio ...
- python中的pygame模块使用方法_Pygame的基本使用
Pygame有很多模块,每个模块又有很多方法,在此不能够逐一讲解,所以,我们通过一个实例来学习Pygame,然后再分解代码,讲解代码中的模块. 例:制作一个跳跃的小球游戏. 创建一个游戏窗口,然后在窗 ...
- Python pygame(GUI编程)模块最完整教程(1)
提示:下滑文章左侧可以查看目录! 1 初识pygame 1.1 简介 参考资料:About - pygame wiki pygame是python中一个流行的GUI编程模块,是专门为了开发游戏而设计的 ...
- pygame模块_pygame模块方法和事件
安装 首先我们需要安装pygame,如果已经安装好python和pip的,只需要在命令行工具中执行: pip install pygame 安装好后我们可以使用import pygame来确认pyga ...
最新文章
- 代理上网环境下配置TortoiseCVS
- 老板说我最近飘了,都敢用 MySQL 实现分布式锁了
- 04使用模板显示内容
- java joptionpanel_JOptionPane用法--java
- JQuery 匿名函数初识(转载)
- php 发送http请求
- SAP制造业解决方案
- 【手把手带你学nRF52832/nRF52840 · 开发环境搭建】
- sql学习练习题_学习SQL:练习SQL查询
- asp.net 读取mysql_asp.net封装mysql工具类,在页面上引用读取的数据
- eclipse 启动 tomcat : Multiple Contexts have a path of /SOAProject
- spring cloud微服务分布式云架构简介
- CSS框架学习资料汇总
- expect+shell脚本实现免密登录
- 内容:提出共享储能背景下微网运营商与用户聚合商间的 Stackelberg 博弈模型,在 MATLAB 平台上进行算例仿真
- PL(Planet)卫星群遥感数据介绍及应用
- 计算机打不开管理reg,“.reg”代码解决Win7系统自带磁盘管理打不开的故障
- Jetson Nano 下串口调试工具
- 通过数据告诉你centos和debian哪个好?
- python3 陌生的角落(1):基础语法
热门文章
- 使用SG_IO发送SCSI 指令测试底层驱动的scatter-gather 功能
- 802.11b标准简介
- 24丨基础篇:Linux磁盘I-O是怎么工作的(上)
- oracle ajax储存过程分页,创建 Oracle 分页存储过程
- P1038 神经网络(拓扑排序)
- 技术干货 | 阿里云数据库PostgreSQL 13大版本揭秘
- Redis主从复制与优化
- Flink 1.11.0 发布,有哪些值得关注的新特性?
- Unity自定义角色控制器(一):碰撞检测
- 《炉石传说》架构设计赏析(4):Asset管理