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处理python编码问题
Mar 13 Python
举例详解Python中的split()函数的使用方法
Apr 07 Python
Python使用迭代器打印螺旋矩阵的思路及代码示例
Jul 02 Python
Python3 模块、包调用&路径详解
Oct 25 Python
python3.6+selenium实现操作Frame中的页面元素
Jul 16 Python
什么是Python中的顺序表
Jun 02 Python
Python在字符串中处理html和xml的方法
Jul 31 Python
python用Tkinter做自己的中文代码编辑器
Sep 07 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
Nov 28 Python
Python 图片处理库exifread详解
Feb 25 Python
pandas DataFrame.shift()函数的具体使用
May 24 Python
给numpy.array增加维度的超简单方法
Jun 02 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下过滤html代码的函数 提高程序安全性
2010/03/02 PHP
jQuery EasyUI 中文API Layout(Tabs)
2010/04/27 Javascript
利用jQuery接受和处理xml数据的代码(.net)
2011/03/28 Javascript
由Javascript实现的页面日历
2011/11/04 Javascript
jquery如何根据值设置默认的选中项
2014/03/17 Javascript
jquery实现像栅栏一样左右滑出式二级菜单效果代码
2015/08/24 Javascript
学习Bootstrap滚动监听 附调用方法
2016/07/02 Javascript
深入浅析javascript中的作用域(推荐)
2016/07/19 Javascript
JavaScript数组操作函数汇总
2016/08/05 Javascript
js实现背景图自适应窗口大小
2017/01/10 Javascript
JavaScript数组操作详解
2017/02/04 Javascript
AngularJS入门教程二:在路由中传递参数的方法分析
2017/05/27 Javascript
Express的HTTP重定向到HTTPS的方法
2018/06/06 Javascript
vue+axios新手实践实现登陆的示例代码
2018/06/06 Javascript
vue动态删除从数据库倒入列表的某一条方法
2018/09/29 Javascript
js中null与空字符串""的区别讲解
2019/01/17 Javascript
基于node简单实现RSA加解密的方法步骤
2019/03/21 Javascript
jQuery实现动态生成年月日级联下拉列表示例
2019/05/11 jQuery
vue-cli脚手架打包静态资源请求出错的原因与解决
2019/06/06 Javascript
jQuery实现的记住帐号密码功能完整示例
2019/08/03 jQuery
vue 实现超长文本截取,悬浮框提示
2020/07/29 Javascript
Python连接mssql数据库编码问题解决方法
2015/01/01 Python
python通过自定义isnumber函数判断字符串是否为数字的方法
2015/04/23 Python
python中__slots__用法实例
2015/06/04 Python
Python散点图与折线图绘制过程解析
2019/11/30 Python
Python3 xml.etree.ElementTree支持的XPath语法详解
2020/03/06 Python
Python 线性回归分析以及评价指标详解
2020/04/02 Python
HTML5中微数据概述及在搜索引擎中的使用举例
2013/02/07 HTML / CSS
生物技术毕业生自荐信
2013/10/23 职场文书
红领巾广播站广播稿
2014/10/19 职场文书
2014年扶贫工作总结
2014/11/18 职场文书
总账会计岗位职责
2015/04/02 职场文书
幼儿园六一主持词
2015/06/30 职场文书
小学英语教师研修感悟
2015/11/18 职场文书
mysq启动失败问题及场景分析
2021/07/15 MySQL
RPM包方式安装Oracle21c的方法详解
2021/08/23 Oracle