pygame实现弹力球及其变速效果


Posted in Python onJuly 03, 2017

本文实例为大家分享了pygame实现弹力球及其变速效果的具体代码,供大家参考,具体内容如下

期望:

1.球体接触到框体后反弹

2.设置速度按键,按下后改变球体速度、颜色状态

具体实现:

import pygame
from pygame.locals import *
import sys, random


class Circle(object):
 # 设置Circle类属性
 def __init__(self):
  self.vel_x = 1
  self.vel_y = 1
  self.radius = 20
  self.pos_x, self.pos_y = random.randint(0, 255), random.randint(0, 255)
  self.width = 0
  self.color = 0, 0, 0

 # 球体颜色速度改变方法
 def change_circle(self, number):
  self.color = random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)
  # 防止球体速度方向发生改变
  if self.vel_x < 0:
   self.vel_x = -number
  else:
   self.vel_x = number
  if self.vel_y < 0:
   self.vel_y = -number
  else:
   self.vel_y = number
  # self.vel_x, self.vel_y = number, number 如果仅此句,速度方向会发生改变

 def circle_run(self):
  # 防止球体超出游戏界面框体
  if self.pos_x > 580 or self.pos_x < 20:
   self.vel_x = -self.vel_x

  if self.pos_y > 480 or self.pos_y < 20:
   self.vel_y = -self.vel_y
  self.pos_x += self.vel_x
  self.pos_y += self.vel_y
  pos = self.pos_x, self.pos_y
  pygame.draw.circle(screen, self.color, pos, self.radius, self.width)

pygame.init()
screen = pygame.display.set_mode((600, 500))
# Circle实例
circle1 = Circle()

while True:
 for event in pygame.event.get():
  if event.type == QUIT:
   sys.exit()
  elif event.type == KEYUP:
   if event.key == pygame.K_1:
    circle1.change_circle(1)
   elif event.key == pygame.K_2:
    circle1.change_circle(2)
   elif event.key == pygame.K_3:
    circle1.change_circle(3)
   elif event.key == pygame.K_4:
    circle1.change_circle(4)

 screen.fill((0, 0, 100))

 circle1.circle_run()

 pygame.display.update()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 抓取动态网页内容方案详解
Dec 25 Python
Python探索之ModelForm代码详解
Oct 26 Python
python pandas中对Series数据进行轴向连接的实例
Jun 08 Python
python内置数据类型之列表操作
Nov 12 Python
NumPy 数组使用大全
Apr 25 Python
Django模板导入母版继承和自定义返回Html片段过程解析
Sep 18 Python
Python字典的概念及常见应用实例详解
Oct 30 Python
基于Python检测动态物体颜色过程解析
Dec 04 Python
Python集成开发工具Pycharm的安装和使用详解
Mar 18 Python
Python使用pyyaml模块处理yaml数据
Apr 14 Python
python 逆向爬虫正确调用 JAR 加密逻辑
Jan 12 Python
Python LMDB库的使用示例
Feb 14 Python
[原创]使用豆瓣提供的国内pypi源
Jul 02 #Python
python中安装Scrapy模块依赖包汇总
Jul 02 #Python
Python使用filetype精确判断文件类型
Jul 02 #Python
使用python实现tcp自动重连
Jul 02 #Python
详解python3中socket套接字的编码问题解决
Jul 01 #Python
详解Python中for循环是如何工作的
Jun 30 #Python
python 连接sqlite及简单操作
Jun 30 #Python
You might like
php数据库连接
2006/10/09 PHP
ThinkPHP采用模块和操作分析
2011/04/18 PHP
Linux中用PHP判断程序运行状态的2个方法
2014/05/04 PHP
Yii框架获取当前controlle和action对应id的方法
2014/12/03 PHP
laravel 多图上传及图片的存储例子
2019/10/14 PHP
JScript中的&quot;this&quot;关键字使用方式补充材料
2007/03/08 Javascript
JQuery的read函数与js的onload不同方式实现
2013/03/18 Javascript
Jquery取得iframe下内容的方法
2013/11/18 Javascript
推荐25个超炫的jQuery网格插件
2014/11/28 Javascript
angularjs的一些优化小技巧
2014/12/06 Javascript
javascript中AJAX用法实例分析
2015/01/30 Javascript
JS实现仿FLASH效果的竖排导航代码
2015/09/15 Javascript
AngularJS压缩JS技巧分析
2016/11/08 Javascript
JavaScript实现自动跳转文本功能
2017/05/25 Javascript
Vue.js框架路由使用方法实例详解
2017/08/25 Javascript
jQuery实现获取table中鼠标click点击位置行号与列号的方法
2017/10/09 jQuery
JS简单实现动态添加HTML标记的方法示例
2018/04/08 Javascript
vue+iview+less 实现换肤功能
2018/08/17 Javascript
element-ui 中使用upload多文件上传只请求一次接口
2019/07/19 Javascript
JavaScript This指向问题详解
2019/11/25 Javascript
Node.js API详解之 string_decoder用法实例分析
2020/04/29 Javascript
Python编程中对文件和存储器的读写示例
2016/01/25 Python
基于Python对象引用、可变性和垃圾回收详解
2017/08/21 Python
快速了解Python相对导入
2018/01/12 Python
Python如何实现机器人聊天
2020/09/10 Python
python文件路径操作方法总结
2020/12/21 Python
python源文件的字符编码知识点详解
2021/03/04 Python
施华洛世奇水晶荷兰官方网站:SWAROVSKI荷兰
2017/05/12 全球购物
和谐家庭演讲稿
2014/05/24 职场文书
实习协议书范本
2014/09/25 职场文书
党的群众路线教育实践活动实施方案
2014/10/31 职场文书
2016反腐倡廉警示教育心得体会
2016/01/13 职场文书
Nginx解决403 forbidden的完整步骤
2021/04/01 Servers
SpringBoot2 参数管理实践之入参出参与校验的方式
2021/06/16 Java/Android
世界无敌的ICOM IC-R9500宽频接收机
2022/03/25 无线电
PYTHON基于Pyecharts绘制常见的直角坐标系图表
2022/04/28 Python