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通过定义一个类实例作为ftp回调方法
May 04 Python
Python3.0中普通方法、类方法和静态方法的比较
May 03 Python
Python2.7实现多进程下开发多线程示例
May 31 Python
python之信息加密题目详解
Jun 26 Python
cProfile Python性能分析工具使用详解
Jul 22 Python
利用ImageAI库只需几行python代码实现目标检测
Aug 09 Python
python 画3维轨迹图并进行比较的实例
Dec 06 Python
Python Websocket服务端通信的使用示例
Feb 25 Python
python GUI库图形界面开发之PyQt5下拉列表框控件QComboBox详细使用方法与实例
Feb 27 Python
Python Pillow(PIL)库的用法详解
Sep 19 Python
python接口自动化框架实战
Dec 23 Python
python3使用diagrams绘制架构图的步骤
Apr 08 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
PHP版本常用的排序算法汇总
2015/12/20 PHP
PHP中单例模式的使用场景与使用方法讲解
2019/03/18 PHP
如何解决PHP获取不到SESSION信息之一般情况
2019/10/10 PHP
javascript 动态设置已知select的option的value值的代码
2009/12/16 Javascript
javascript加号"+"的二义性说明
2013/03/04 Javascript
jquery 多行文本框(textarea)高度变化
2013/07/03 Javascript
JavaScript代码简单实现求杨辉三角给定行的最大值
2013/10/29 Javascript
JavaScript实现url地址自动检测并添加URL链接示例代码
2013/11/12 Javascript
AngularJS 实现按需异步加载实例代码
2015/10/18 Javascript
jQuery中attr()与prop()函数用法实例详解(附用法区别)
2015/12/29 Javascript
简单实现JS计算器功能
2016/12/21 Javascript
详解使用nodeJs安装Vue-cli
2017/05/17 NodeJs
Angular如何引入第三方库的方法详解
2017/07/13 Javascript
JavaScript中this关键字用法实例分析
2018/08/24 Javascript
Vue中使用canvas方法总结
2019/02/12 Javascript
layui给下拉框、按钮状态、时间赋初始值的方法
2019/09/10 Javascript
Vue使用NProgress进度条的方法
2019/09/21 Javascript
使用JavaScript实现网页秒表功能(含开始、暂停、继续、重置功能)
2020/06/05 Javascript
[07:08]2014DOTA2西雅图国际邀请赛 小组赛7月11日TOPPLAY
2014/07/11 DOTA
[01:42]DOTA2 – 虚无之灵
2019/08/25 DOTA
批处理与python代码混合编程的方法
2016/05/19 Python
python实现ID3决策树算法
2017/12/20 Python
机器学习之KNN算法原理及Python实现方法详解
2018/07/09 Python
python交互模式下输入换行/输入多行命令的方法
2019/07/02 Python
python关于调用函数外的变量实例
2019/12/26 Python
520使用Python实现“我爱你”表白
2020/05/20 Python
Python爬虫教程知识点总结
2020/10/19 Python
pycharm2020.1.2永久破解激活教程,实测有效
2020/10/29 Python
CSS3属性background-size使用指南
2014/12/09 HTML / CSS
如何将字串String转换成整数int
2015/02/21 面试题
测绘工程专业个人自我评价
2013/12/01 职场文书
元旦联欢会主持词
2014/03/26 职场文书
超市创业计划书
2014/04/24 职场文书
做人民满意的公务员活动方案
2014/08/25 职场文书
党的群众路线教育实践活动整改方案
2014/10/28 职场文书
《乘法分配律》教学反思
2016/02/24 职场文书