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实现文本去重且不打乱原本顺序
Jan 26 Python
Python装饰器入门学习教程(九步学习)
Jan 28 Python
pandas把dataframe转成Series,改变列中值的类型方法
Apr 10 Python
Python 循环语句之 while,for语句详解
Apr 23 Python
Python根据已知邻接矩阵绘制无向图操作示例
Jun 23 Python
快速排序的四种python实现(推荐)
Apr 03 Python
Falsk 与 Django 过滤器的使用与区别详解
Jun 04 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
Feb 04 Python
python 穷举指定长度的密码例子
Apr 02 Python
Keras load_model 导入错误的解决方式
Jun 09 Python
Python pymysql模块安装并操作过程解析
Oct 13 Python
Python中的 enumerate和zip详情
May 30 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实现的下载css文件中的图片的代码
2010/02/08 PHP
PHP简单实现数字分页功能示例
2016/08/24 PHP
PHP+Redis链表解决高并发下商品超卖问题(实现原理及步骤)
2020/08/03 PHP
php 中序列化和json使用介绍
2013/07/08 Javascript
js setTimeout opener的用法示例详解
2013/10/23 Javascript
div浮层,滚动条移动,位置保持不变的4种方法汇总
2013/12/11 Javascript
jquery实现保存已选用户
2014/07/21 Javascript
JavaScript使用push方法添加一个元素到数组末尾用法实例
2015/04/06 Javascript
JavaScript识别网页关键字并进行描红的方法
2015/11/09 Javascript
基于socket.io+express实现多房间聊天
2016/03/17 Javascript
JQuery控制图片由中心点逐渐放大效果
2016/06/26 Javascript
AngularJs Dependency Injection(DI,依赖注入)
2016/09/02 Javascript
js中获取键盘事件的简单实现方法
2016/10/10 Javascript
从零学习node.js之简易的网络爬虫(四)
2017/02/22 Javascript
cordova+vue+webapp使用html5获取地理位置的方法
2019/07/06 Javascript
node.js处理前端提交的GET请求
2019/08/30 Javascript
6种JavaScript继承方式及优缺点(小结)
2020/02/06 Javascript
ssm+vue前后端分离框架整合实现(附源码)
2020/07/08 Javascript
python导包的几种方法(自定义包的生成以及导入详解)
2019/07/15 Python
Python如何应用cx_Oracle获取oracle中的clob字段问题
2019/08/27 Python
python的scipy实现插值的示例代码
2019/11/12 Python
详解Python Opencv和PIL读取图像文件的差别
2019/12/27 Python
python如何通过pyqt5实现进度条
2020/01/20 Python
新建文件时Pycharm中自动设置头部模板信息的方法
2020/04/17 Python
python 在threading中如何处理主进程和子线程的关系
2020/04/25 Python
python中pandas库中DataFrame对行和列的操作使用方法示例
2020/06/14 Python
Django-imagekit的使用详解
2020/07/06 Python
python 实现图片批量压缩的示例
2020/12/18 Python
HTML5 Geolocation API的正确使用方法
2018/12/04 HTML / CSS
HTML5 canvas 瀑布流文字效果的示例代码
2018/01/31 HTML / CSS
世界上最大的餐具公司:Oneida
2016/12/17 全球购物
英国信箱在线鲜花速递公司:Bloom & Wild
2019/03/10 全球购物
美国沙龙美发产品购物网站:Hair.com by L’Oreal
2020/11/09 全球购物
Strathberry苏贝瑞中国官网:西班牙高级工匠手工打造
2020/10/19 全球购物
励志演讲稿800字
2014/08/21 职场文书
2015年学校关工委工作总结
2015/04/03 职场文书