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 安装virtualenv和virtualenvwrapper的方法
Jan 13 Python
python对DICOM图像的读取方法详解
Jul 17 Python
Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
Feb 23 Python
python:print格式化输出到文件的实例
May 14 Python
pytorch 调整某一维度数据顺序的方法
Dec 08 Python
Python玩转加密的技巧【推荐】
May 13 Python
Python3实现汉语转换为汉语拼音
Jul 08 Python
详解Python文件修改的两种方式
Aug 22 Python
如何在python中写hive脚本
Nov 08 Python
如何基于python对接钉钉并获取access_token
Apr 21 Python
Keras中的多分类损失函数用法categorical_crossentropy
Jun 11 Python
python中绕过反爬虫的方法总结
Nov 25 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缓存类代码
2015/10/23 PHP
使用PHP similar text计算两个字符串相似度
2015/11/06 PHP
php微信开发之上传临时素材
2016/06/24 PHP
基于Jquery的动态添加控件并取值的实现代码
2010/09/24 Javascript
juqery 学习之三 选择器 子元素与表单
2010/11/25 Javascript
使用node.js半年来总结的 10 条经验
2014/08/18 Javascript
开源的javascript项目Kissy介绍
2014/11/28 Javascript
jQuery中offsetParent()方法用法实例
2015/01/19 Javascript
jquery实现的伪分页效果代码
2015/10/29 Javascript
探索angularjs+requirejs全面实现按需加载的套路
2016/02/26 Javascript
JavaScript中的对象继承关系
2016/08/01 Javascript
基于vue2的table分页组件实现方法
2017/03/20 Javascript
JavaScript结合HTML DOM实现联动菜单
2017/04/05 Javascript
详解vuejs之v-for列表渲染
2017/06/22 Javascript
js is_valid_filename验证文件名的函数
2017/07/19 Javascript
基于Axios 常用的请求方法别名(详解)
2018/03/13 Javascript
jQuery层叠选择器用法实例分析
2019/06/28 jQuery
解析vue、angular深度作用选择器
2019/09/11 Javascript
深入讲解Python编程中的字符串
2015/10/14 Python
Python如何获取系统iops示例代码
2016/09/06 Python
详解python3百度指数抓取实例
2016/12/12 Python
Python使用PDFMiner解析PDF代码实例
2017/03/27 Python
django项目运行因中文而乱码报错的几种情况解决
2017/11/07 Python
详解Django中间件的5种自定义方法
2018/07/26 Python
Python操作配置文件ini的三种方法讲解
2019/02/22 Python
python matlab库简单用法讲解
2020/12/31 Python
html5 canvas里绘制椭圆并保持线条粗细均匀的技巧
2013/03/25 HTML / CSS
HTML5 Canvas渐进填充与透明实现图像的Mask效果
2013/07/11 HTML / CSS
美国女鞋品牌:naturalizer(娜然)
2016/08/01 全球购物
联想墨西哥官方网站:Lenovo墨西哥
2016/08/17 全球购物
Cotton On香港网站:澳洲时装连锁品牌
2018/11/01 全球购物
DogBuddy荷兰:找到你最完美的狗保姆
2019/04/17 全球购物
印度手工编织服装和家居用品商店:Fabindi
2019/10/07 全球购物
车间班组长的职责
2013/12/13 职场文书
财务简历的自我评价
2014/03/05 职场文书
pytest进阶教程之fixture函数详解
2021/03/29 Python