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 k-近邻算法实例分享
Jun 11 Python
python网络编程之数据传输UDP实例分析
May 20 Python
Python文件操作,open读写文件,追加文本内容实例
Dec 14 Python
Python部署web开发程序的几种方法
May 05 Python
Python中表达式x += y和x = x+y 的区别详解
Jun 20 Python
利用python 更新ssh 远程代码 操作远程服务器的实现代码
Feb 08 Python
python3实现逐字输出的方法
Jan 23 Python
python 字典的打印实现
Sep 26 Python
50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)
Nov 20 Python
pytorch使用tensorboardX进行loss可视化实例
Feb 24 Python
python自动化办公操作PPT的实现
Feb 05 Python
Python安装使用Scrapy框架
Apr 12 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
为了这两部电子管收音机,买了6套全新电子管和10粒刻度盘灯泡
2021/03/02 无线电
《DOTA3》开发工作已经开始 《DOTA3》将代替《DOTA2》
2021/03/06 DOTA
PHP令牌 Token改进版
2008/07/18 PHP
PHP error_log()将错误信息写入一个文件(定义和用法)
2013/10/25 PHP
PHP实现手机号码中间四位用星号(*)隐藏的自定义函数分享
2014/09/27 PHP
php metaphone()函数及php localeconv() 函数实例解析
2016/05/15 PHP
TP5(thinkPHP5框架)实现显示错误信息及行号功能的方法
2019/06/03 PHP
javascript 导出数据到Excel(处理table中的元素)
2009/12/18 Javascript
jQuery选择器的工作原理和优化分析
2011/07/25 Javascript
jquery如何判断某元素是否具备指定的样式
2013/11/05 Javascript
JavaScript获得表单target属性的方法
2015/04/02 Javascript
JavaScript实现添加、查找、删除元素
2015/07/02 Javascript
深入解析jQuery中Deferred的deferred.promise()方法
2016/05/03 Javascript
jQuery文字提示与图片提示效果实现方法
2016/07/04 Javascript
微信小程序 textarea 详解及简单使用方法
2016/12/05 Javascript
JavaScript获取当前时间向前推三个月的方法示例
2017/02/04 Javascript
vue实现导航栏效果(选中状态刷新不消失)
2017/12/13 Javascript
Vue一次性简洁明了引入所有公共组件的方法
2018/11/28 Javascript
webpack HappyPack实战详解
2019/10/08 Javascript
vue 返回上一页,页面样式错乱的解决
2019/11/14 Javascript
微信小程序如何获取地址
2019/12/24 Javascript
node.js中process进程的概念和child_process子进程模块的使用方法示例
2020/02/11 Javascript
vue-cli3 引入 font-awesome的操作
2020/08/11 Javascript
Python中使用tarfile压缩、解压tar归档文件示例
2015/04/05 Python
python里使用正则表达式的组嵌套实例详解
2017/10/24 Python
Python判断字符串是否为合法标示符操作
2020/09/03 Python
python 爬取百度文库并下载(免费文章限定)
2020/12/04 Python
CSS3与动画有关的属性transition、animation、transform对比(史上最全版)
2017/08/18 HTML / CSS
iphoneX 适配客户端H5页面的方法教程
2017/12/08 HTML / CSS
澳大利亚最大的网上油画销售画廊:Direct Art Australia
2018/04/15 全球购物
SheIn沙特阿拉伯:女装在线
2020/03/23 全球购物
求高于平均分的学生学号及成绩
2016/09/01 面试题
Javascript如何发送一个Ajax请求
2015/01/26 面试题
2014年人事部工作总结
2014/12/03 职场文书
教代会开幕词
2015/01/28 职场文书
Python+Appium实现自动抢微信红包
2021/05/21 Python