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搭建微信公众平台
Feb 09 Python
python验证码识别的示例代码
Sep 21 Python
Python爬取当当、京东、亚马逊图书信息代码实例
Dec 09 Python
Python实现从log日志中提取ip的方法【正则提取】
Mar 31 Python
Django+Ajax+jQuery实现网页动态更新的实例
May 28 Python
Python subprocess库的使用详解
Oct 26 Python
Python基础类继承重写实现原理解析
Apr 03 Python
5行Python代码实现图像分割的步骤详解
May 25 Python
python根据用户需求输入想爬取的内容及页数爬取图片方法详解
Aug 03 Python
Django url 路由匹配过程详解
Jan 22 Python
Python抖音快手代码舞(字符舞)的实现方法
Feb 07 Python
Python可视化学习之matplotlib内置单颜色
Feb 24 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
重新封装zend_soap实现http连接安全认证的php代码
2011/01/12 PHP
10个php函数实用却不常见
2015/10/13 PHP
PHP实现将base64编码字符串转换成图片示例
2018/06/22 PHP
JavaScript 中的事件教程
2007/04/05 Javascript
Javascript中的var_dump函数实现代码
2009/09/07 Javascript
js判断手机访问或者PC的几个例子(常用于手机跳转)
2015/12/15 Javascript
JS清除文本框内容离开在恢复及鼠标离开文本框时触发js的方法
2016/01/12 Javascript
基于Bootstrap实现的下拉菜单手机端不能选择菜单项的原因附解决办法
2016/07/22 Javascript
再谈javascript注入 黑客必备!
2016/09/14 Javascript
使用Vue.js创建一个时间跟踪的单页应用
2016/11/28 Javascript
javascript中json基础知识详解
2017/01/19 Javascript
100多个基础常用JS函数和语法集合大全
2017/02/16 Javascript
vue中使用localstorage来存储页面信息
2017/11/04 Javascript
element ui里dialog关闭后清除验证条件方法
2018/02/26 Javascript
在HTML文档中嵌入JavaScript的四种方法
2018/05/07 Javascript
Javascript Promise用法详解
2018/05/10 Javascript
JS实现前端页面的搜索功能
2018/06/12 Javascript
jquery+css3实现的经典弹出层效果示例
2020/05/16 jQuery
JavaScript设计模式--简单工厂模式定义与应用案例详解
2020/05/23 Javascript
微信小程序实现底部弹出模态框
2020/11/18 Javascript
MySQL最常见的操作语句小结
2015/05/07 Python
Python去除字符串两端空格的方法
2015/05/21 Python
Python 基础之字符串string详解及实例
2017/04/01 Python
利用TensorFlow训练简单的二分类神经网络模型的方法
2018/03/05 Python
Python引用计数操作示例
2018/08/23 Python
Python一句代码实现找出所有水仙花数的方法
2018/11/13 Python
django获取from表单multiple-select的value和id的方法
2019/07/19 Python
python tkinter基本属性详解
2019/09/16 Python
python opencv图片编码为h264文件的实例
2019/12/12 Python
浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式
2020/05/25 Python
python绘制高斯曲线
2021/02/19 Python
留学经费担保书
2014/05/12 职场文书
欢迎家长标语
2014/10/08 职场文书
css3实现的加载动画效果
2021/04/07 HTML / CSS
多线程Spring通过@Scheduled实现定时任务
2022/05/25 Java/Android