# 导入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模块中键控命令不能实现方块移动,求解相关推荐

  1. python pygame模块按键延迟_Python之pygame学习键盘事件操作(9)

    pygame键盘事件操作 ✕ 什么是事件呢?按下键盘某个按键,鼠标移动,包括点击关闭按钮都可以算是事件操作. pygame中事件模块是pygame.event,官方说法是用于与事件和队列进行交互. 不 ...

  2. python pygame模块按键延迟_如何在python/pygame中延迟一件事情而不延迟其他事情?...

    最简单的方法是使用事件(无论如何都要检查事件)import pygame pygame.init() screen = pygame.display.set_mode((200, 200)) # ou ...

  3. python pygame模块按键延迟_用pygame做游戏时,用pygame.KEYDOWN来实现的按键控制“不灵敏”能怎么解决?...

    这样写就十分灵活了 就是每个按键添加了一个k变量来检测按键是否被按着. 每一对儿方向相对的按键加了一个f变量来记录两个按键谁最后按下的. speed=[x,y] for event in pygame ...

  4. python pygame K按键说明

    python之 pygame按键 KeyASCII ASCII Common Name K_BACKSPACE \b backspace K_TAB \t tab K_CLEAR clear K_RE ...

  5. python pygame鼠标点击_pygame系列_mouse鼠标事件

    pygame.mouse提供了一些方法获取鼠标设备当前的状态 '''pygame.mouse.get_pressed - get the state of the mouse buttons get ...

  6. Python dict keys方法:获取字典中键的序列

    目录 描述 语法 使用示例 注意事项 函数返回的是一个可迭代序列,而不是列表 描述 dict.keys()方法是Python的字典方法,它将字典中的所有键组成一个可迭代序列并返回. 语法 dictio ...

  7. python中的pygame模块使用方法_Pygame的基本使用

    Pygame有很多模块,每个模块又有很多方法,在此不能够逐一讲解,所以,我们通过一个实例来学习Pygame,然后再分解代码,讲解代码中的模块. 例:制作一个跳跃的小球游戏. 创建一个游戏窗口,然后在窗 ...

  8. Python pygame(GUI编程)模块最完整教程(1)

    提示:下滑文章左侧可以查看目录! 1 初识pygame 1.1 简介 参考资料:About - pygame wiki pygame是python中一个流行的GUI编程模块,是专门为了开发游戏而设计的 ...

  9. pygame模块_pygame模块方法和事件

    安装 首先我们需要安装pygame,如果已经安装好python和pip的,只需要在命令行工具中执行: pip install pygame 安装好后我们可以使用import pygame来确认pyga ...

最新文章

  1. 代理上网环境下配置TortoiseCVS
  2. 老板说我最近飘了,都敢用 MySQL 实现分布式锁了
  3. 04使用模板显示内容
  4. java joptionpanel_JOptionPane用法--java
  5. JQuery 匿名函数初识(转载)
  6. php 发送http请求
  7. SAP制造业解决方案
  8. 【手把手带你学nRF52832/nRF52840 · 开发环境搭建】
  9. sql学习练习题_学习SQL:练习SQL查询
  10. asp.net 读取mysql_asp.net封装mysql工具类,在页面上引用读取的数据
  11. eclipse 启动 tomcat : Multiple Contexts have a path of /SOAProject
  12. spring cloud微服务分布式云架构简介
  13. CSS框架学习资料汇总
  14. expect+shell脚本实现免密登录
  15. 内容:提出共享储能背景下微网运营商与用户聚合商间的 Stackelberg 博弈模型,在 MATLAB 平台上进行算例仿真
  16. PL(Planet)卫星群遥感数据介绍及应用
  17. 计算机打不开管理reg,“.reg”代码解决Win7系统自带磁盘管理打不开的故障
  18. Jetson Nano 下串口调试工具
  19. 通过数据告诉你centos和debian哪个好?
  20. python3 陌生的角落(1):基础语法

热门文章

  1. 使用SG_IO发送SCSI 指令测试底层驱动的scatter-gather 功能
  2. 802.11b标准简介
  3. 24丨基础篇:Linux磁盘I-O是怎么工作的(上)
  4. oracle ajax储存过程分页,创建 Oracle 分页存储过程
  5. P1038 神经网络(拓扑排序)
  6. 技术干货 | 阿里云数据库PostgreSQL 13大版本揭秘
  7. Redis主从复制与优化
  8. Flink 1.11.0 发布,有哪些值得关注的新特性?
  9. Unity自定义角色控制器(一):碰撞检测
  10. 《炉石传说》架构设计赏析(4):Asset管理