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 04 Python
Saltstack快速入门简单汇总
Mar 01 Python
Python 转义字符详细介绍
Mar 21 Python
python让列表倒序输出的实例
Jun 25 Python
Python实现多级目录压缩与解压文件的方法
Sep 01 Python
对Python模块导入时全局变量__all__的作用详解
Jan 11 Python
Python XlsxWriter模块Chart类用法实例分析
Mar 11 Python
使用APScheduler3.0.1 实现定时任务的方法
Jul 22 Python
python3.6、opencv安装环境搭建过程(图文教程)
Nov 05 Python
pytorch torch.nn.AdaptiveAvgPool2d()自适应平均池化函数详解
Jan 03 Python
教你利用python实现企业微信发送消息
May 23 Python
Python超详细分步解析随机漫步
Mar 17 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
apache php模块整合操作指南
2012/11/16 PHP
PHP实现的DES加密解密实例代码
2016/04/06 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
Javascript实例教程(19) 使用HoTMetal(6)
2006/12/23 Javascript
用CSS+JS实现的进度条效果效果
2007/06/05 Javascript
Javascript 构造函数 实例分析
2008/11/26 Javascript
js冒泡法和数组转换成字符串示例代码
2013/08/14 Javascript
动态创建script标签实现跨域资源访问的方法介绍
2014/02/28 Javascript
JQuery 设置checkbox值二次无效的解决方法
2016/07/22 Javascript
JavaScript中原型链存在的问题解析
2016/09/25 Javascript
JS实现搜索框文字可删除功能
2016/12/28 Javascript
jQuery.Validate表单验证插件的使用示例详解
2017/01/04 Javascript
JavaScript Date 知识浅析
2017/01/29 Javascript
又拍云 Node.js 实现文件上传、删除功能
2018/10/28 Javascript
JS开发自己的类库实例分析
2019/08/28 Javascript
Python实现数通设备端口使用情况监控实例
2015/07/15 Python
Python找出9个连续的空闲端口
2016/02/01 Python
离线安装Pyecharts的步骤以及依赖包流程
2020/04/23 Python
Python实现扣除个人税后的工资计算器示例
2018/03/26 Python
Python实现批量读取图片并存入mongodb数据库的方法示例
2018/04/02 Python
python使用xlrd模块读取xlsx文件中的ip方法
2019/01/11 Python
基于python读取.mat文件并取出信息
2019/12/16 Python
python实现超级玛丽游戏
2020/03/18 Python
在python中使用pyspark读写Hive数据操作
2020/06/06 Python
HTML5 canvas实现移动端上传头像拖拽裁剪效果
2016/03/14 HTML / CSS
Omio波兰:全欧洲低价大巴、火车和航班搜索和比价
2018/02/16 全球购物
澳大利亚手袋、珠宝和在线时尚精品店:The Way
2019/12/21 全球购物
某某同志考察材料
2014/05/28 职场文书
群众路线四风对照检查材料
2014/11/04 职场文书
2014年信息技术工作总结
2014/12/16 职场文书
小学家长通知书评语
2014/12/31 职场文书
教师节班会开场白
2015/06/01 职场文书
用几道面试题来看JavaScript执行机制
2021/04/30 Javascript
Vue h函数的使用详解
2022/02/18 Vue.js
教你部署vue项目到docker
2022/04/05 Vue.js
python实现学员管理系统(面向对象版)
2022/06/05 Python