python pygame实现方向键控制小球


Posted in Python onMay 17, 2019

最后一个项目用到了pygame,  实现方向键控制小球,对于模块不熟悉的我还是查询了一些资料介绍。

import sys
import pygame
from pygame.locals import *
 
def control_ball(event):
 speed = [x,y] =[0,0]# 设置相对位移
 speed_offset = 1 #小球的速度
 
# 如果事件的类型是 键盘输入,就根据方向键来求出速度的方向(默认是从左往右为1,从上往下为1)
 if event.type == KEYDOWN:
 if event.key == pygame.K_LEFT:
  speed[0] -= speed_offset
  print event.key
 
 if event.key == pygame.K_RIGHT:
  speed[0] = speed_offset
  print event.key
 
 if event.key == pygame.K_UP:
  speed[1] -= speed_offset
  print event.key
 
 
 if event.key == pygame.K_DOWN:
  speed[1] = speed_offset
  print event.key
#如果没有方向键的输入,则速度为0,小球不动
 if event.type in (pygame.K_UP, pygame.K_LEFT, pygame.K_RIGHT, pygame.K_DOWN):
 speed = [0,0]
 
 
 return speed
 
 
#主函数
def play_ball():
 pygame.init()#初始化
 window_size = Rect(0,0,800,640)#设置窗口的大小
 
 screen = pygame.display.set_mode(window_size.size)#设置窗口模式
 pygame.display.set_caption('hello')#设置窗口标题
 ball_image = pygame.image.load('ball.bmp')#载入小球图片
 back_image = pygame.image.load('ball1.bmp')#载入背景图片
 ball_rect = ball_image.get_rect()# 获取小球图片所在的区域
 
 while True:
#退出事件的处理
 for event in pygame.event.get():
  if event.type == QUIT:
  sys.exit()
  
 control_speed = control_ball(event)#获取到小球的方向
 ball_rect = ball_rect.move(control_speed).clamp(window_size)#小球按照方向移动,并且不会移出窗口。
 
 screen.blit(back_image,(0,0))#设置窗口背景,位于(0,0)处,窗口左上角。
 screen.blit(ball_image, ball_rect)#把小球绘制到背景surface上。

 pygame.display.flip()#更新窗口内容
 
 
if __name__ == '__main__':
 play_ball()

pygame模块的第一件事就是初始化其模块,pygame.init()。

python pygame实现方向键控制小球

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

Python 相关文章推荐
Python yield使用方法示例
Dec 04 Python
用Python编写脚本使IE实现代理上网的教程
Apr 23 Python
python学习教程之使用py2exe打包
Sep 24 Python
python如何实现代码检查
Jun 28 Python
pytorch numpy list类型之间的相互转换实例
Aug 18 Python
Python 导入文件过程图解
Oct 15 Python
python实现高斯(Gauss)迭代法的例子
Nov 20 Python
用Python实现校园通知更新提醒功能
Nov 23 Python
如何在Django中使用聚合的实现示例
Mar 23 Python
浅谈在JupyterNotebook下导入自己的模块的问题
Apr 16 Python
python爬虫 requests-html的使用
Nov 30 Python
python如何用matplotlib创建三维图表
Jan 26 Python
基于Numpy.convolve使用Python实现滑动平均滤波的思路详解
May 16 #Python
Python实现Linux监控的方法
May 16 #Python
计算机二级python学习教程(3) python语言基本数据类型
May 16 #Python
Python实现爬取亚马逊数据并打印出Excel文件操作示例
May 16 #Python
Python实现的文轩网爬虫完整示例
May 16 #Python
计算机二级python学习教程(2) python语言基本语法元素
May 16 #Python
计算机二级python学习教程(1) 教大家如何学习python
May 16 #Python
You might like
全国FM电台频率大全 - 26 西藏自治区
2020/03/11 无线电
关于PHP内置的字符串处理函数详解
2017/02/04 PHP
PHP+JavaScript实现无刷新上传图片
2017/02/21 PHP
Yii 访问 Gii(脚手架)时出现 403 错误
2018/06/06 PHP
Laravel5.1 框架控制器基础用法实例分析
2020/01/04 PHP
获取JavaScript用户自定义类的类名称的代码
2007/03/08 Javascript
JavaScript返回上一页的三种方法及区别介绍
2015/07/04 Javascript
javascript实现label标签跳出循环操作
2016/03/06 Javascript
基于vue的换肤功能的示例代码
2017/10/10 Javascript
iview table render集成switch开关的实例
2018/03/14 Javascript
JavaScript执行环境及作用域链实例分析
2018/08/01 Javascript
jQuery实现鼠标移入移出事件切换功能示例
2018/09/06 jQuery
在vue中使用vue-echarts-v3的实例代码
2018/09/13 Javascript
Vue中的基础过渡动画及实现原理解析
2018/12/04 Javascript
JavaScript 中 JSON.parse 函数 和 JSON.stringify 函数
2018/12/05 Javascript
JS尾递归的实现方法及代码优化技巧
2019/01/19 Javascript
vue-cli3项目配置eslint代码规范的完整步骤
2020/09/10 Javascript
详解基于element的区间选择组件校验(交易金额)
2021/01/07 Javascript
用Python的pandas框架操作Excel文件中的数据教程
2015/03/31 Python
初学Python函数的笔记整理
2015/04/07 Python
详解Python中for循环的使用
2015/04/14 Python
windows下安装Python和pip终极图文教程
2017/03/05 Python
django admin后管定制-显示字段的实例
2020/03/11 Python
浅谈Django中的QueryDict元素为数组的坑
2020/03/31 Python
Python使用xlrd实现读取合并单元格
2020/07/09 Python
Python实现微信表情包炸群功能
2021/01/28 Python
俄罗斯化妆品和香水网上商店:Iledebeaute
2019/01/03 全球购物
大四学年自我鉴定
2013/11/13 职场文书
蟋蟀的住宅教学反思
2014/04/26 职场文书
作风整顿个人剖析材料
2014/10/06 职场文书
家长给老师的感谢信
2015/01/20 职场文书
公司承诺函范文
2015/01/21 职场文书
青涩记忆观后感
2015/06/18 职场文书
2016国庆促销广告语
2016/01/28 职场文书
3050和2060哪个好 性能差多少 差距有多大 谁更有性价比
2022/06/17 数码科技
Spring Boot优化后启动速度快到飞起技巧示例
2022/07/23 Java/Android