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 网络编程详解及简单实例
Apr 25 Python
使用Python进行AES加密和解密的示例代码
Feb 02 Python
Sanic框架应用部署方法详解
Jul 18 Python
在python中利用KNN实现对iris进行分类的方法
Dec 11 Python
Python中判断子串存在的性能比较及分析总结
Jun 23 Python
Django logging配置及使用详解
Jul 23 Python
Python学习笔记之While循环用法分析
Aug 14 Python
torch 中各种图像格式转换的实现方法
Dec 26 Python
python3+opencv生成不规则黑白mask实例
Feb 19 Python
python MultipartEncoder传输zip文件实例
Apr 07 Python
tensorflow指定CPU与GPU运算的方法实现
Apr 21 Python
为什么说python更适合树莓派编程
Jul 20 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语法(4)
2006/10/09 PHP
一道求$b相对于$a的相对路径的php代码
2010/08/08 PHP
比较时间段一与时间段二是否有交集的php函数
2011/05/31 PHP
Laravel 5框架学习之数据库迁移(Migrations)
2015/04/08 PHP
PHP fopen中文文件名乱码问题解决方案
2020/10/28 PHP
jQuery 方法大全方便学习参考
2010/02/25 Javascript
JSQL  一个 web DB 的封装
2010/05/05 Javascript
jquery 查找新建元素代码
2010/07/06 Javascript
Ext JS添加子组件的误区探讨
2013/06/28 Javascript
Vue.js表单控件实践
2016/10/27 Javascript
Node.js使用gm拼装sprite图片
2017/07/04 Javascript
如何更好的编写js async函数
2018/05/13 Javascript
JavaScript的Proxy可以做哪些有意思的事儿
2019/06/15 Javascript
小程序实现上下移动切换位置
2019/09/23 Javascript
继承行为在 ES5 与 ES6 中的区别详解
2019/12/24 Javascript
详细分析vue表单数据的绑定
2020/07/20 Javascript
Openlayers实现地图全屏显示
2020/09/28 Javascript
antd多选下拉框一行展示的实现方式
2020/10/31 Javascript
[01:03:51]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第三场
2018/04/09 DOTA
python连接MySQL数据库实例分析
2015/05/12 Python
快速入手Python字符编码
2016/08/03 Python
高质量Python代码编写的5个优化技巧
2017/11/16 Python
对python cv2批量灰度图片并保存的实例讲解
2018/11/09 Python
pyqt5 实现工具栏文字图片同时显示
2019/06/13 Python
详解Python3 中的字符串格式化语法
2020/01/15 Python
Django自带的用户验证系统实现
2020/12/18 Python
阿迪达斯印度官方商城:adidas India
2017/03/26 全球购物
.NET里面如何取得当前的屏幕分辨率
2012/12/06 面试题
幼儿园园长岗位职责
2013/11/26 职场文书
外语系大学生自荐信范文
2014/03/01 职场文书
投标承诺书范本
2014/03/27 职场文书
党校个人自我鉴定范文
2014/03/28 职场文书
教师年度考核评语
2014/04/28 职场文书
2014镇党委班子对照检查材料思想汇报
2014/09/23 职场文书
国庆节标语大全
2014/10/08 职场文书
关于运动会的广播稿
2015/08/19 职场文书