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随机生成信用卡卡号的实现方法
May 14 Python
利用python库在局域网内传输文件的方法
Jun 04 Python
python使用__slots__让你的代码更加节省内存
Sep 05 Python
python3.6.3安装图文教程 TensorFlow安装配置方法
Jun 24 Python
解决python3读取Python2存储的pickle文件问题
Oct 25 Python
Python推导式简单示例【列表推导式、字典推导式与集合推导式】
Dec 04 Python
用uWSGI和Nginx部署Flask项目的方法示例
May 05 Python
Jacobi迭代算法的Python实现详解
Jun 29 Python
简单了解Python3里的一些新特性
Jul 13 Python
详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)
Aug 06 Python
python实现本地批量ping多个IP的方法示例
Aug 07 Python
Django实现聊天机器人
May 31 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的FTP学习(二)
2006/10/09 PHP
Apache2 httpd.conf 中文版
2006/12/06 PHP
让PHP支持页面回退的两种方法
2008/01/10 PHP
PHP初学者最感迷茫的问题小结
2010/03/27 PHP
php全局变量和类配合使用深刻理解
2013/06/05 PHP
PHP+MySQL之Insert Into数据插入用法分析
2015/09/27 PHP
Codeigniter中集成smarty和adodb的方法
2016/03/04 PHP
PHP调用接口API封装的例子
2019/10/11 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
js 新浪的一个图片播放图片轮换效果代码
2008/07/15 Javascript
JQuery 入门实例1
2009/06/25 Javascript
分享一个用Mootools写的鼠标滑过进度条改变进度值的实现代码
2011/12/12 Javascript
js实现右下角可关闭最小化div(可用于展示推荐内容)
2013/06/24 Javascript
jquery获取元素值的方法(常见的表单元素)
2013/11/15 Javascript
jquery遍历select元素(实例讲解)
2013/12/31 Javascript
JS获取图片lowsrc属性的方法
2015/04/01 Javascript
jquery使用经验小结
2015/05/20 Javascript
Node.js编程中客户端Session的使用详解
2015/06/23 Javascript
jquery UI实现autocomplete在获取焦点时得到显示列表功能示例
2019/06/04 jQuery
koa2 用户注册、登录校验与加盐加密的实现方法
2019/07/22 Javascript
浅析Vue 防抖与节流的使用
2019/11/14 Javascript
原生JavaScript实现贪吃蛇游戏
2020/11/04 Javascript
前端如何实现动画过渡效果
2021/02/05 Javascript
Windows下安装python2.7及科学计算套装
2015/03/05 Python
python中列表元素连接方法join用法实例
2015/04/07 Python
Django学习教程之静态文件的调用详解
2018/05/08 Python
python2.7的flask框架之引用js&css等静态文件的实现方法
2019/08/22 Python
python实现名片管理器的示例代码
2019/12/17 Python
python产生模拟数据faker库的使用详解
2020/11/04 Python
中国领先的专业家电网购平台:国美在线
2016/12/25 全球购物
意大利制造的男鞋和女鞋:SCAROSSO
2018/03/07 全球购物
LN-CC日本:高端男装和女装的奢侈时尚目的地
2019/09/01 全球购物
香港连卡佛百货官网:Lane Crawford
2019/09/04 全球购物
Java面试题:为什么要用Java
2012/05/11 面试题
副总经理工作职责
2013/11/28 职场文书
Go各时间字符串使用解析
2021/04/02 Golang