pygame游戏之旅 添加键盘按键的方法


Posted in Python onNovember 20, 2018

本文为大家分享了pygame游戏之旅的第4篇,供大家参考,具体内容如下

按键类型用event.type表示,按键用event.key表示

KEYDOWN和KEYUP的参数描述如下:

key ? 按下或者放开的键值,是一个数字,估计地球上很少有人可以记住,所以Pygame中可以使用K_xxx来表示,比如字母a就是K_a,还有K_SPACE和K_RETURN等。
mod ? 包含了组合键信息,如果mod & KMOD_CTRL是真的话,表示用户同时按下了Ctrl键。类似的还有KMOD_SHIFT,KMOD_ALT。
unicode ? 代表了按下键的Unicode值,这个有点不好理解,真正说清楚又太麻烦,游戏中也不太常用,说明暂时省略,什么时候需要再讲吧。

提前设置需要移动的距离

x_change = 0

并把car的移动到应该的位置

x += x_change

把所有的游戏循环写入game_loop函数中

代码:

import pygame
 
pygame.init()
 
white = (255,255,255)
 
car_width = 100
 
display_width = 800
display_height = 600
 
 
gameDisplay = pygame.display.set_mode( (display_width,display_height) )
pygame.display.set_caption('A bit Racey')
clock = pygame.time.Clock()
 
carImg = pygame.image.load('car.png')
 
def car(x, y):
 gameDisplay.blit(carImg, (x,y))
 
def game_loop():
 x = display_width * 0.45
 y = display_height * 0.8
 x_change = 0
 
 gameExit = False
 
 while not gameExit:
  for event in pygame.event.get():
   if event.type == pygame.QUIT:
    gameExit = True
   if event.type == pygame.KEYDOWN:
    if event.key == pygame.K_LEFT:
     x_change = -5
    elif event.key == pygame.K_RIGHT:
     x_change = 5
   if event.type == pygame.KEYUP:
    if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
     x_change = 0
   print(event)
  x += x_change
  gameDisplay.fill(white)
  car(x,y)
  if x > display_width - car_width or x < 0:
   gameExit = True
  pygame.display.update()
  clock.tick(60)
 
game_loop()
pygame.quit()
quit()

效果图:

pygame游戏之旅 添加键盘按键的方法pygame游戏之旅 添加键盘按键的方法pygame游戏之旅 添加键盘按键的方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现定制交互式命令行的方法
Jul 03 Python
Python的Flask框架中实现简单的登录功能的教程
Apr 20 Python
初步认识Python中的列表与位运算符
Oct 12 Python
Python学习之用pygal画世界地图实例
Dec 07 Python
详解python中的json和字典dict
Jun 22 Python
Python闭包函数定义与用法分析
Jul 20 Python
教你如何编写、保存与运行Python程序的方法
Jul 12 Python
使用 tf.nn.dynamic_rnn 展开时间维度方式
Jan 21 Python
python实现随机加减法生成器
Feb 24 Python
python破解同事的压缩包密码
Oct 14 Python
python实现ROA算子边缘检测算法
Apr 05 Python
python内置进制转换函数的操作
Jun 02 Python
pygame游戏之旅 载入小车图片、更新窗口
Nov 20 #Python
一文带你了解Python中的字符串是什么
Nov 20 #Python
pygame游戏之旅 创建游戏窗口界面
Nov 20 #Python
pygame游戏之旅 python和pygame安装教程
Nov 20 #Python
python2和python3的输入和输出区别介绍
Nov 20 #Python
python使用pygame框架实现推箱子游戏
Nov 20 #Python
浅析python的优势和不足之处
Nov 20 #Python
You might like
《PHP编程最快明白》第七讲:php图片验证码与缩略图
2010/11/01 PHP
ajax 的post方法实例(带循环)
2011/07/04 PHP
PHP5.5和之前的版本empty函数的不同之处
2014/06/13 PHP
在Yii框架中使用PHP模板引擎Twig的例子
2014/06/13 PHP
用PHP代码在网页上生成图片
2015/07/01 PHP
关于PHP虚拟主机概念及如何选择稳定的PHP虚拟主机
2018/11/20 PHP
javascript date格式化示例
2013/09/25 Javascript
判断复选框是否被选中的两种方法
2014/06/04 Javascript
jQuery实现带滚动导航效果的全屏滚动相册实例
2015/06/19 Javascript
javascript事件绑定学习要点
2016/03/09 Javascript
JS上传组件FileUpload自定义模板的使用方法
2016/05/10 Javascript
jQuery数据检索中根据关键字快速定位GridView指定行的实现方法
2016/06/08 Javascript
移动端js触摸事件详解
2016/09/18 Javascript
jQuery获取table下某一行某一列的值实现代码
2017/04/07 jQuery
基于vue-cli npm run build之后vendor.js文件过大的解决方法
2018/09/27 Javascript
JS中appendChild追加子节点无效的解决方法
2018/10/14 Javascript
vue多页面项目中路由使用history模式的方法
2019/09/23 Javascript
vue-cli3自动消除console.log()的调试信息方式
2020/10/21 Javascript
vue 使用vant插件做tabs切换和无限加载功能的实现
2020/11/04 Javascript
Python单链表简单实现代码
2016/04/27 Python
Python实现TCP/IP协议下的端口转发及重定向示例
2016/06/14 Python
python机器学习之神经网络(二)
2017/12/20 Python
详解python中asyncio模块
2018/03/03 Python
python mqtt 客户端的实现代码实例
2019/09/25 Python
简单了解django处理跨域请求最佳解决方案
2020/03/25 Python
python和php哪个容易学
2020/06/19 Python
印度网上药店:1mg
2017/10/13 全球购物
英国皇家邮政海外旗舰店:Royal Mail
2018/02/21 全球购物
英国受欢迎的运动鞋和街头服装商店:Footasylum
2018/06/12 全球购物
统计学专业毕业生的自我评价分享
2013/11/28 职场文书
大学生自我鉴定书
2014/03/24 职场文书
户外宣传策划方案
2014/05/25 职场文书
爱祖国爱家乡演讲稿
2014/09/02 职场文书
涪陵白鹤梁导游词
2015/02/09 职场文书
党员个人总结自评
2015/02/14 职场文书
《我和小伙伴》教学反思
2016/02/20 职场文书