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解惑之True和False详解
Apr 24 Python
Python实现字典按照value进行排序的方法分析
Dec 23 Python
Jupyter notebook远程访问服务器的方法
May 24 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
Dec 12 Python
详解python实现交叉验证法与留出法
Jul 11 Python
python 使用opencv 把视频分割成图片示例
Dec 12 Python
Pandas —— resample()重采样和asfreq()频度转换方式
Feb 26 Python
浅谈Python线程的同步互斥与死锁
Mar 22 Python
在主流系统之上安装Pygame的方法
May 20 Python
Python是什么 Python的用处
May 26 Python
Python selenium 加载并保存QQ群成员,去除其群主、管理员信息的示例代码
May 28 Python
使用已经得到的keras模型识别自己手写的数字方式
Jun 29 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
建立动态的WML站点(一)
2006/10/09 PHP
用PHP编写和读取XML的几种方式
2013/01/12 PHP
PHP+Ajax实时自动检测是否联网的方法
2015/07/01 PHP
javascript之bind使用介绍
2011/10/09 Javascript
在jQuery ajax中按钮button和submit的区别分析
2012/10/07 Javascript
JQuery简单实现锚点链接的平滑滚动
2015/05/03 Javascript
jQuery移动页面开发中的触摸事件与虚拟鼠标事件简介
2015/12/03 Javascript
jQuery的内容过滤选择器学习教程
2016/04/18 Javascript
Bootstrap中datetimepicker使用小结
2016/12/28 Javascript
vue filters的使用详解
2018/06/11 Javascript
javascript实现简易的计算器
2020/01/17 Javascript
js绘制一条直线并旋转45度
2020/08/21 Javascript
vue+element实现动态加载表单
2020/12/13 Vue.js
nodejs处理tcp连接的核心流程
2021/02/26 NodeJs
[49:08]FNATIC vs Infamous 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
python执行get提交的方法
2015/04/29 Python
Python Flask-web表单使用详解
2017/11/18 Python
python+Django+pycharm+mysql 搭建首个web项目详解
2019/11/29 Python
Python新手学习raise用法
2020/06/03 Python
解决python3.6用cx_Oracle库连接Oracle的问题
2020/12/07 Python
全网最全python库selenium自动化使用详细教程
2021/01/12 Python
python推导式的使用方法实例
2021/02/28 Python
美国在线咖啡、茶和餐厅供应商:LollicupStore
2018/05/04 全球购物
世界上最好的足球商店:Unisport
2019/03/02 全球购物
大专生自荐信
2013/10/04 职场文书
总务岗位职责
2013/11/19 职场文书
共产党员公开承诺书
2014/03/25 职场文书
运动会方阵口号
2014/06/07 职场文书
委托代理人授权委托书范本
2014/09/24 职场文书
离婚协议书范本2014
2014/10/27 职场文书
2014年企业党支部工作总结
2014/12/04 职场文书
2015年团支书工作总结
2015/04/03 职场文书
离婚承诺书格式范文
2015/05/04 职场文书
关于车尾的标语大全
2015/08/11 职场文书
2015年大学组织委员个人工作总结
2015/10/23 职场文书
Nginx配置SSL证书出错解决方案
2021/03/31 Servers