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写入中英文字符串到文件的方法
May 06 Python
Python实现新浪博客备份的方法
Apr 27 Python
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
Apr 11 Python
老生常谈Python startswith()函数与endswith函数
Sep 08 Python
pandas筛选某列出现编码错误的解决方法
Nov 07 Python
python微信撤回监测代码
Apr 29 Python
不到40行代码用Python实现一个简单的推荐系统
May 10 Python
在python plt图表中文字大小调节的方法
Jul 08 Python
python中with用法讲解
Feb 07 Python
python 命名规范知识点汇总
Feb 14 Python
浅谈python的elementtree模块处理中文注意事项
Mar 06 Python
Python3之乱码\xe6\x97\xa0\xe6\xb3\x95处理方式
May 11 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
Blitz templates 最快的PHP模板引擎
2010/04/06 PHP
php 中文和编码判断代码
2010/05/16 PHP
PHP的邮件群发系统phplist配置方法详细总结
2016/03/30 PHP
jQuery实现图片放大预览实现原理及代码
2013/09/12 Javascript
文本框文本自动补全效果示例分享
2014/01/19 Javascript
JavaScript基础篇(3)之Object、Function等引用类型
2015/11/30 Javascript
浅谈几种常用的JS类定义方法
2016/06/08 Javascript
详解AngularJS如何实现跨域请求
2016/08/22 Javascript
jQuery图片轮播(二)利用构造函数和原型创建对象以实现继承
2016/12/06 Javascript
js模态对话框使用方法详解
2017/02/16 Javascript
React+Webpack快速上手指南(小结)
2018/08/15 Javascript
小程序实现选择题选择效果
2018/11/04 Javascript
微信小程序时间控件picker view使用详解
2018/12/28 Javascript
实例介绍JavaScript中多种组合继承
2019/01/20 Javascript
JavaScript作用域链实例详解
2019/01/21 Javascript
原生javascript单例模式的应用实例分析
2020/02/23 Javascript
微信小程序点击item使之滚动到屏幕中间位置
2020/03/25 Javascript
python基础教程之五种数据类型详解
2017/01/12 Python
Python Nose框架编写测试用例方法
2017/10/26 Python
解决win64 Python下安装PIL出错问题(图解)
2018/09/03 Python
Django JWT Token RestfulAPI用户认证详解
2019/01/23 Python
Python 实现自动获取种子磁力链接方式
2020/01/16 Python
Python+Appium实现自动化测试的使用步骤
2020/03/24 Python
部署Django到阿里云服务器教程示例
2020/06/03 Python
Python通过getattr函数获取对象的属性值
2020/10/16 Python
Python 数据分析之逐块读取文本的实现
2020/12/14 Python
matplotlib实现数据实时刷新的示例代码
2021/01/05 Python
python中time包实例详解
2021/02/02 Python
美国网上鞋子零售商:Dr. Scholl’s Shoes
2017/11/17 全球购物
中国制造网:Made-in-China.com
2019/10/25 全球购物
杭州时比特电子有限公司SQL
2013/08/22 面试题
软件测试工程师面试问题精选
2016/10/28 面试题
电焊工岗位工作职责
2014/07/09 职场文书
人事主管岗位职责说明书
2014/07/30 职场文书
2016元旦文艺汇演主持词(开场白+结束语)
2015/12/03 职场文书
java代码实现空间切割
2022/01/18 Java/Android