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 16 Python
如何利用Fabric自动化你的任务
Oct 20 Python
Python中类的创建和实例化操作示例
Feb 27 Python
python opencv摄像头的简单应用
Jun 06 Python
python 通过可变参数计算n个数的乘积方法
Jun 13 Python
用Pytorch训练CNN(数据集MNIST,使用GPU的方法)
Aug 19 Python
使用pytorch实现可视化中间层的结果
Dec 30 Python
解决Tensorflow 使用时cpu编译不支持警告的问题
Feb 03 Python
使用卷积神经网络(CNN)做人脸识别的示例代码
Mar 27 Python
使用python实现时间序列白噪声检验方式
Jun 03 Python
python 爬取华为应用市场评论
May 29 Python
利用python进行数据加载
Jun 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
在“咖啡之国”感受咖啡文化
2021/03/03 咖啡文化
PHP操作数组相关函数
2011/02/03 PHP
基于PHP文件操作的详细诠释
2013/06/21 PHP
总结一些PHP中好用但又容易忽略的小知识
2017/06/02 PHP
可实现多表单提交的javascript函数
2007/08/01 Javascript
不懂JavaScript应该怎样学
2008/04/16 Javascript
Extjs中ComboBox加载并赋初值的实现方法
2012/03/22 Javascript
删除select中所有option选项jquery代码
2013/08/12 Javascript
js中setTimeout()与clearTimeout()用法实例浅析
2015/05/12 Javascript
学习使用AngularJS文件上传控件
2016/02/16 Javascript
通过隐藏iframe实现无刷新上传文件操作
2016/03/16 Javascript
详解JS中的立即执行函数
2017/02/24 Javascript
BootStrap表单宽度设置方法
2017/03/10 Javascript
React学习笔记之条件渲染(一)
2017/07/02 Javascript
React从react-router路由上做登陆验证控制的方法
2018/05/10 Javascript
JavaScript常用数学函数用法示例
2018/05/14 Javascript
vue 配置多页面应用的示例代码
2018/10/22 Javascript
JavaScript面向对象程序设计中对象的定义和继承详解
2019/07/29 Javascript
[01:10]DOTA2次级职业联赛 - Fly战队宣传片
2014/12/01 DOTA
用Python解决计数原理问题的方法
2016/08/04 Python
Pandas 数据处理,数据清洗详解
2018/07/10 Python
Python一句代码实现找出所有水仙花数的方法
2018/11/13 Python
简述 Python 的类和对象
2020/08/21 Python
详解前端HTML5几种存储方式的总结
2016/12/27 HTML / CSS
西班牙手机之家:Phone House
2018/10/18 全球购物
班主任评语大全
2014/04/26 职场文书
《放飞蜻蜓》教学反思
2014/04/27 职场文书
创意婚礼策划方案
2014/05/18 职场文书
企业安全生产责任书范本
2014/07/28 职场文书
2014年党风廉政工作总结
2014/12/03 职场文书
2015新年联欢晚会开场白
2014/12/14 职场文书
毕业设计论文致谢词
2015/05/14 职场文书
生日寿星公答谢词
2015/09/29 职场文书
2019年怎样写好导游词?
2019/07/02 职场文书
Python实战之疫苗研发情况可视化
2021/05/18 Python
Python中Numpy和Matplotlib的基本使用指南
2021/11/02 Python