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 相关文章推荐
wxpython中利用线程防止假死的实现方法
Aug 11 Python
栈和队列数据结构的基本概念及其相关的Python实现
Aug 24 Python
使用python实现生成用户信息
Mar 20 Python
Python数字图像处理之霍夫线变换实现详解
Jan 12 Python
python 计算一个字符串中所有数字的和实例
Jun 11 Python
Python Matplotlib 基于networkx画关系网络图
Jul 10 Python
Tensorflow中的降维函数tf.reduce_*使用总结
Apr 20 Python
基于PyQT实现区分左键双击和单击
May 19 Python
Python控制台实现交互式环境执行
Jun 09 Python
在keras里面实现计算f1-score的代码
Jun 15 Python
PyCharm上安装Package的实现(以pandas为例)
Sep 18 Python
Python存储读取HDF5文件代码解析
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/07/14 PHP
ThinkPHP3.2.1图片验证码实现方法
2016/08/19 PHP
CodeIgniter框架钩子机制实现方法【hooks类】
2018/08/21 PHP
Laravel Eloquent ORM 实现查询表中指定的字段
2019/10/17 PHP
使用PHP开发留言板功能
2019/11/19 PHP
拖动布局之保存布局页面cookies篇
2010/10/29 Javascript
整理8个很棒的 jQuery 倒计时插件和教程
2011/12/12 Javascript
js三种排序算法分享
2012/08/16 Javascript
原生js实现跨浏览器获取鼠标按键的值
2013/04/08 Javascript
JS 数字转换研究总结
2013/12/26 Javascript
jquery.validate使用时遇到的问题
2015/05/25 Javascript
微信jssdk在iframe页面失效问题的解决措施
2016/03/03 Javascript
详解Jquery EasyUI tree 的异步加载(遍历指定文件夹,根据文件夹内的文件生成tree)
2017/02/11 Javascript
利用Vue.js实现求职在线之职位查询功能
2017/07/03 Javascript
layui.js实现的表单验证功能示例
2017/11/15 Javascript
使用JavaScript保存文本文件到本地的两种方法
2019/01/22 Javascript
小程序如何在不同设备上自适应生成海报的实现方法
2019/08/20 Javascript
vuex实现数据状态持久化
2019/11/11 Javascript
[47:04]EG vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
python插入排序算法的实现代码
2013/11/21 Python
python字符串编码识别模块chardet简单应用
2015/06/15 Python
Python原始字符串与Unicode字符串操作符用法实例分析
2017/07/22 Python
Python实现学校管理系统
2018/01/11 Python
解决Python Matplotlib绘图数据点位置错乱问题
2020/05/16 Python
Python pandas对excel的操作实现示例
2020/07/21 Python
python 日志模块logging的使用场景及示例
2021/01/04 Python
canvas实现飞机打怪兽射击小游戏的示例代码
2018/07/09 HTML / CSS
Html5在手机端调用相机的方法实现
2020/05/13 HTML / CSS
英国日常交易网站:Wowcher
2018/09/04 全球购物
在阿尔卑斯山或希腊度过快乐假期:Alpine Elements
2019/12/28 全球购物
super关键字的用法
2012/04/10 面试题
静态成员和非静态成员的区别
2012/05/12 面试题
初中班级口号
2014/06/09 职场文书
2014年国庆节活动总结
2014/08/26 职场文书
音乐教师个人总结
2015/02/06 职场文书
如何利用golang运用mysql数据库
2022/03/13 Golang