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写的图片蜘蛛人代码
Aug 27 Python
python使用wxPython打开并播放wav文件的方法
Apr 24 Python
python文件操作之目录遍历实例分析
May 20 Python
Python中max函数用法实例分析
Jul 17 Python
Python基于PycURL自动处理cookie的方法
Jul 25 Python
浅析使用Python操作文件
Jul 31 Python
老生常谈Python startswith()函数与endswith函数
Sep 08 Python
13个最常用的Python深度学习库介绍
Oct 28 Python
浅析Python与Mongodb数据库之间的操作方法
Jul 01 Python
Pytorch实现LSTM和GRU示例
Jan 14 Python
python 回溯法模板详解
Feb 26 Python
10个顶级Python实用库推荐
Mar 04 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
2006/12/14 PHP
PHP性能优化工具篇Benchmark类调试执行时间
2011/12/06 PHP
php使用pack处理二进制文件的方法
2014/07/03 PHP
php实现微信公众号主动推送消息
2015/12/31 PHP
Zend Framework教程之视图组件Zend_View用法详解
2016/03/05 PHP
Yii2实现跨mysql数据库关联查询排序功能代码
2017/02/10 PHP
php 使用curl模拟ip和来源进行访问的实现方法
2017/05/02 PHP
php微信公众号开发之现金红包
2018/04/16 PHP
js 单引号 传递方法
2009/06/22 Javascript
javascript转换字符串为dom对象(字符串动态创建dom)
2010/05/10 Javascript
浅析document.ready和window.onload的区别讲解
2013/12/18 Javascript
js通过元素class名字获取元素集合的具体实现
2014/01/06 Javascript
JavaScript实现简单的二级导航菜单实例
2015/04/15 Javascript
jQuery Validate表单验证插件 添加class属性形式的校验
2016/01/18 Javascript
js+html5实现侧滑页面效果
2017/07/15 Javascript
vue按需加载组件webpack require.ensure的方法
2017/12/13 Javascript
iconfont的三种使用方式详解
2018/08/05 Javascript
微信小程序引用iconfont图标的方法
2018/10/22 Javascript
微信小程序Page中data数据操作和函数调用方法
2019/05/08 Javascript
layui实现下拉复选功能的例子(包括数据的回显与上传)
2019/09/24 Javascript
解决vue更新路由router-view复用组件内容不刷新的问题
2019/11/04 Javascript
javascript实现切割轮播效果
2019/11/28 Javascript
Python实现的Google IP 可用性检测脚本
2015/04/23 Python
Python实现大文件排序的方法
2015/07/10 Python
Pycharm技巧之代码跳转该如何回退
2017/07/16 Python
python使用正则筛选信用卡
2019/01/27 Python
通过python连接Linux命令行代码实例
2020/02/18 Python
python 实现一个简单的线性回归案例
2020/12/17 Python
彪马加拿大官网:PUMA加拿大
2018/10/04 全球购物
捷克家电和家具购物网站:OKAY.cz
2020/07/23 全球购物
计算机网络专业个人的自我评价
2013/10/17 职场文书
代办出身证明书
2014/10/21 职场文书
无罪辩护词范文
2015/05/21 职场文书
民事答辩状格式范文
2015/05/21 职场文书
Java面试题冲刺第十六天--消息队列
2021/08/07 面试题
vue-treeselect的基本用法以及解决点击无法出现拉下菜单
2022/04/30 Vue.js