pygame中使用事件扫描实现对按键的检测以及小游戏的编写
确保你的python环境已经安装了pygame的库
import pygame, sys, random
import pygame.locals as GAME_GLOBALS
import pygame.event as GAME_EVENTSpygame.init()windowWidth = 800
windowHeigh = 800surface = pygame.display.set_mode((windowWidth, windowHeigh))pygame.display.set_caption('Pygame Keyboard')playerSize = 20
playerX = (windowWidth / 2) - (playerSize / 2)
playerY = windowHeigh - playerSize
playerVX = 1.0
playerVY = 0.0
jumpHeight = 25.0
moveSpeed = 1.0
maxSpeed = 10.0
gravity = 1.0leftDown = False
rightdOWN = False
haveJumped = Falsedef move():global playerX, playerY, playerVX, playerVY, haveJumped,gravityif leftDown:if playerVX > 0.0:playerVX = moveSpeedplayerVX = -playerVXif playerX > 0:playerX += playerVXif rightdOWN:if playerVX < 0.0:playerVX = moveSpeedif playerX + playerSize < windowWidth:playerX += playerVXif playerVY > 1.0:playerVY = playerVY * 0.9else:playerVY = 0.0haveJumped = Falseif playerY < windowHeigh - playerSize:playerY += gravitygravity = gravity * 1.1else:playerY = windowHeigh - playerSizegravity = 1.0playerY -= playerVYif(playerVX > 0.0 and playerVX < maxSpeed) or (playerVX < 0.0 and playerVX > -maxSpeed):if not haveJumped and (leftDown or rightdOWN):playerVX = playerVX * 1.1#how to quit our program
def quitGame():pygame.quit()sys.exit()while True:surface.fill((0, 0, 0))pygame.draw.rect(surface, (255, 0, 0), (playerX, playerY, playerSize, playerSize))for event in GAME_EVENTS.get():if event.type == pygame.KEYDOWN:if event.key == pygame.K_LEFT:leftDown = Trueif event.key == pygame.K_RIGHT:rightdOWN = Trueif event.key == pygame.K_UP:if not haveJumped:haveJumped = TrueplayerVY += jumpHeightif event.key == pygame.K_ESCAPE:quitGame()if event.type == pygame.KEYUP:if event.key == pygame.K_LEFT:leftDown = FalseplayerVX = moveSpeedif event.key == pygame.K_RIGHT:rightDowm = FalseplayerVX = moveSpeedif event.type == GAME_GLOBALS.QUIT:quitGame()move()pygame.display.update()
函数说明
pygame.display.set_mode()函数;
初始化一个准备显示的窗口或者屏幕。
pygame.display.set_caption(‘Pygame Keyboard’)设置窗口的标题
global playerX, playerY, playerVX, playerVY, haveJumped,gravity 由于python的变量是不用声明直接可以使用的,所以在函数内部要是想使用全局变量并且想在函数内部更改全局变量的数值,必须进行全局变量的声明之后才能够使用,这样 在函数的内部也能够轻易的更改全局变量的数值。
def move():函数用于检测按键的事件并对相应的按键做出相应的动作
def quitGame():pygame.quit()sys.exit()
退出游戏的函数
pygame中使用事件扫描实现对按键的检测以及小游戏的编写相关推荐
- 【Pygame实战】学英语,SO easy 最热门TOP3单词小游戏代码,记单词好轻松,游戏全程学单词,不仅有趣还是备考利器哦~(附完整代码)
前言 语言是一种艺术,但是作为语言的基础--词汇,却不像艺术那样赏心悦目.不断的记忆与复 习,让词汇成为很多孩子在学习英语时,最难完全攻克的关卡. 所有文章完整的素材+源码都在
- 「前端面试题系列7」Javascript 中的事件机制(从原生到框架)
前言 这是前端面试题系列的第 7 篇,你可能错过了前面的篇章,可以在这里找到: 理解函数的柯里化 ES6 中箭头函数的用法 this 的原理以及用法 伪类与伪元素的区别及实战 如何实现一个圣杯布局? ...
- Python游戏开发,Pygame模块,Python从零开始带大家实现一个魔塔小游戏
开发工具 Python版本: 3.7.4 相关模块: pygame模块: 以及一些python自带的模块. 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 原理简介 首先, ...
- Cocos Creator开发技术研究:微信小游戏中音效中断问题处理
转载自麒麟子博客:https://qilinzi.blog.csdn.net/article/details/89488323 音效可谓是一个小游戏的灵魂了. 某些玩法离开了音效更是不可能,比如别踩白 ...
- 微信3D小游戏系列一:在微信小游戏中使用threejs
文章目录 环境配置 下载开发者工具 目录结构 引入Three.js 在小程序中运行 threejs 目标效果 小程序代码 环境配置 下载开发者工具 下载地址: https://developers.w ...
- pygame系列_游戏中的事件
先看一下我做的demo: 当玩家按下键盘上的:上,下,左,右键的时候,后台会打印出玩家所按键的数字值,而图形会随之移动 这是客观上面存在的现象. 那么啥是事件呢? 你叫我做出定义,我不知道,我只能举个 ...
- 解决pygame中按键连续按下的问题
如何在飞机大战中实现按键连续按下呢? 解决问题的方法有很多,下面我介绍一下官网给出的方法. 先上代码: #函数原型:pygame.key.set_repeat(delay, interval) pyg ...
- python pygame模块按键延迟_Python之pygame学习键盘事件操作(9)
pygame键盘事件操作 ✕ 什么是事件呢?按下键盘某个按键,鼠标移动,包括点击关闭按钮都可以算是事件操作. pygame中事件模块是pygame.event,官方说法是用于与事件和队列进行交互. 不 ...
- Pygame中的两种键盘按键捕获方式
在Pygame中,针对键盘按键的捕获,有两种 第一种:判断event.type == pygame.KEYDOWN if event.type == pygame.KEYDOWN and event. ...
最新文章
- 北京、广州同时开课 | 临床基因组学数据分析实战助力解析Case,快速发表文章...
- ListView详解 (ListView图文混排)
- boost::mpl模块实现insert相关的测试程序
- 【机器视觉】 export_def算子
- 3月4日见!Redmi Note 10系列屏幕升级:首次采用Super AMOLED屏
- 调试信息清除小工具的编写
- python在工作中怎么用_简洁优雅的Python教你如何在工作中“偷懒”
- 以用户为中心的SNS站点数据库设计及实现
- Spark之MLlib
- Django ORM models操作
- Linux根据端口号或者关键字查询进程,重启Tomcat服务脚本优缺点说明
- php利用svn hooks将程序自动发布到测试环境
- 基于SSM的作业管理(在线学习)系统
- 使用Sigar采系统信息
- Servlet 原理概述
- 01.视频播放器框架介绍
- easysysprep4封装教程,自己封装系统
- oracle vm 介绍,Oracle VM 概述
- 在标准IO库中,rewind函数作用?
- 华为防火墙理论与管理