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实现115网盘自动下载的方法
Sep 30 Python
python字典排序实例详解
May 20 Python
Python使用bs4获取58同城城市分类的方法
Jul 08 Python
深入解析Python中的__builtins__内建对象
Jun 21 Python
python下10个简单实例代码
Nov 15 Python
Python排序搜索基本算法之插入排序实例分析
Dec 11 Python
python numpy 显示图像阵列的实例
Jul 02 Python
python3使用flask编写注册post接口的方法
Dec 28 Python
Python自定义一个类实现字典dict功能的方法
Jan 19 Python
python列表使用实现名字管理系统
Jan 30 Python
python按照多个条件排序的方法
Feb 08 Python
对python借助百度云API对评论进行观点抽取的方法详解
Feb 21 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合并数组+与array_merge的区别分析
2010/08/01 PHP
点图片上一页下一页翻页效果
2008/07/09 Javascript
jquery 简单导航实现代码
2009/09/11 Javascript
jQuery Ajax 仿AjaxPro.Utility.RegisterTypeForAjax辅助方法
2011/09/27 Javascript
jQuery 关于伪类选择符的使用说明
2013/04/24 Javascript
利用进制转换压缩数字函数分享
2014/01/02 Javascript
45个JavaScript编程注意事项、技巧大全
2015/02/11 Javascript
JS时间特效最常用的三款
2015/08/19 Javascript
jQuery仿360导航页图标拖动排序效果代码分享
2015/08/24 Javascript
基于BootStrap Metronic开发框架经验小结【七】数据的导入、导出及附件的查看处理
2016/05/12 Javascript
使用Script元素发送JSONP请求的方法
2016/06/12 Javascript
详解JS: reduce方法实现 webpack多文件入口
2017/02/14 Javascript
AngularJS中使用three.js的实例详解
2017/07/21 Javascript
基于JavaScript实现飘落星星特效
2017/08/10 Javascript
Vue组件中slot的用法
2018/01/30 Javascript
es6数值的扩展方法
2019/03/11 Javascript
Vue数字输入框组件的使用方法
2019/10/19 Javascript
JS数组属性去重并校验重复数据
2020/01/10 Javascript
两个命令把 Vim 打造成 Python IDE的方法
2016/03/20 Python
在python中获取div的文本内容并和想定结果进行对比详解
2019/01/02 Python
python对列进行平移变换的方法(shift)
2019/01/10 Python
使用Python快乐学数学Github万星神器Manim简介
2019/08/07 Python
Python列表删除元素del、pop()和remove()的区别小结
2019/09/11 Python
matplotlib.pyplot.plot()参数使用详解
2020/07/28 Python
Python字符串查找基本操作代码案例
2020/10/27 Python
让你相见恨晚的十个Python骚操作
2020/11/18 Python
python源文件的字符编码知识点详解
2021/03/04 Python
Html5导航栏吸顶方案原理与对比实现
2020/06/10 HTML / CSS
英国鞋网:Rubber Sole
2020/03/03 全球购物
医学院护理专业应届生求职信
2013/11/12 职场文书
项目采购员岗位职责
2014/04/15 职场文书
2014年预备党员群众路线教育实践活动对照检查材料思想汇报
2014/10/02 职场文书
2014年应急工作总结
2014/12/11 职场文书
交通安全主题班会
2015/08/12 职场文书
Spring事务管理下synchronized锁失效问题的解决方法
2022/03/31 Java/Android
Vue Element plus使用方法梳理
2022/12/24 Vue.js