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 快速排序代码
Nov 23 Python
Python中用PIL库批量给图片加上序号的教程
May 06 Python
Python中使用ElementTree解析XML示例
Jun 02 Python
web.py 十分钟创建简易博客实现代码
Apr 22 Python
用python结合jieba和wordcloud实现词云效果
Sep 05 Python
Python实现的根据IP地址计算子网掩码位数功能示例
May 23 Python
Python 3.3实现计算两个日期间隔秒数/天数的方法示例
Jan 07 Python
Python enumerate函数功能与用法示例
Mar 01 Python
Python面向对象实现一个对象调用另一个对象操作示例
Apr 08 Python
Python一行代码实现快速排序的方法
Apr 30 Python
Django将默认的SQLite更换为MySQL的实现
Nov 18 Python
自己搭建resnet18网络并加载torchvision自带权重的操作
May 13 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
IP攻击升级,程序改进以对付新的攻击
2010/11/23 PHP
Zend Framework动作控制器用法示例
2016/12/09 PHP
Laravel框架验证码类用法实例分析
2019/09/11 PHP
基于jQuery的让非HTML5浏览器支持placeholder属性的代码
2011/05/24 Javascript
js中判断文本框是否为空的两种方法
2011/07/31 Javascript
js去空格技巧分别去字符串前后、左右空格
2013/10/21 Javascript
JavaScript验证电子邮箱的函数
2014/08/22 Javascript
jquery和js实现对div的隐藏和显示方法
2014/09/26 Javascript
javascript修改图片src的方法
2015/01/27 Javascript
推荐10 款 SVG 动画的 JavaScript 库
2015/03/24 Javascript
基于jQuery实现收缩展开功能
2016/03/18 Javascript
jquery延迟对象解析
2016/10/26 Javascript
js实现点击按钮弹出上传文件的窗口
2016/12/23 Javascript
AngularJS+Bootstrap3多级导航菜单的实现代码
2017/08/16 Javascript
vue 中directive功能的简单实现
2018/01/05 Javascript
webuploader实现上传图片到服务器功能
2018/08/16 Javascript
解决vue 单文件组件中样式加载问题
2019/04/24 Javascript
vue路由切换之淡入淡出的简单实现
2019/10/31 Javascript
js将URL网址转为16进制加密与解密函数
2020/03/04 Javascript
[01:42]TI4西雅图DOTA2前线报道 第一顿早饭哦
2014/07/08 DOTA
[55:47]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第三局
2016/02/27 DOTA
Python FTP两个文件夹间的同步实例代码
2018/05/25 Python
OpenCV+python手势识别框架和实例讲解
2018/08/03 Python
基于python二叉树的构造和打印例子
2019/08/09 Python
Hotels.com印度:酒店预订
2019/05/11 全球购物
北美最大的参茸药食商城:德成行
2020/12/06 全球购物
一道Delphi面试题
2016/10/28 面试题
文明寝室申报材料
2014/05/12 职场文书
大型演出策划方案
2014/05/28 职场文书
乡镇安全生产目标责任书
2014/07/23 职场文书
公司授权委托书范文
2014/08/02 职场文书
入党积极分子自我批评思想汇报
2014/10/10 职场文书
少先队辅导员事迹材料
2014/12/24 职场文书
考察邀请函范文
2015/01/31 职场文书
幼儿园辞职书
2015/02/26 职场文书
2015初中政治教学工作总结
2015/07/21 职场文书