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 相关文章推荐
Python3.x版本中新的字符串格式化方法
Apr 24 Python
tensorflow TFRecords文件的生成和读取的方法
Feb 06 Python
python线程池threadpool使用篇
Apr 27 Python
python2与python3共存问题的解决方法
Sep 18 Python
python中的for循环
Sep 28 Python
pycharm: 恢复(reset) 误删文件的方法
Oct 22 Python
django 快速启动数据库客户端程序的方法示例
Aug 16 Python
python实现通过队列完成进程间的多任务功能示例
Oct 28 Python
PyQt5 closeEvent关闭事件退出提示框原理解析
Jan 08 Python
pycharm设置python文件模板信息过程图解
Mar 10 Python
tensorflow从ckpt和从.pb文件读取变量的值方式
May 26 Python
教你用Python爬取英雄联盟皮肤原画
Jun 13 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中如何判断AJAX提交的数据
2012/02/05 PHP
PHP中4种常用的抓取网络数据方法
2015/06/04 PHP
php resizeimage 部分jpg文件 生成缩略图失败的原因分析及解决办法
2016/03/23 PHP
ExtJS Window 最小化的一种方法
2009/11/18 Javascript
javascript仿qq界面的折叠菜单实现代码
2012/12/12 Javascript
js事件绑定快捷键以ctrl+k为例
2014/09/30 Javascript
JavaScript继承学习笔记【新手必看】
2016/05/10 Javascript
基于AngularJs + Bootstrap + AngularStrap相结合实现省市区联动代码
2016/05/30 Javascript
JavaScript设计模式之代理模式详解
2017/06/09 Javascript
最新Javascript程序员面试试题和解题方法
2017/11/23 Javascript
微信小程序map组件结合高德地图API实现wx.chooseLocation功能示例
2019/01/23 Javascript
vue实现图片上传到后台
2020/06/29 Javascript
vue双击事件2.0事件监听(点击-双击-鼠标事件)和事件修饰符操作
2020/07/27 Javascript
js+css3实现简单时钟特效
2020/09/13 Javascript
Python内置函数dir详解
2015/04/14 Python
在Python中使用cookielib和urllib2配合PyQuery抓取网页信息
2015/04/25 Python
Python简单计算文件夹大小的方法
2015/07/14 Python
Python中list列表的一些进阶使用方法介绍
2015/08/15 Python
Linux(Redhat)安装python3.6虚拟环境(推荐)
2018/05/05 Python
pytorch 可视化feature map的示例代码
2019/08/20 Python
python多线程同步之文件读写控制
2021/02/25 Python
python自动发微信监控报警
2019/09/06 Python
python图像处理模块Pillow的学习详解
2019/10/09 Python
在tensorflow中实现去除不足一个batch的数据
2020/01/20 Python
解决pytorch 的state_dict()拷贝问题
2021/03/03 Python
财务副总经理工作职责
2013/11/25 职场文书
酒店出纳岗位职责
2013/12/29 职场文书
职业培训师职业生涯规划
2014/02/18 职场文书
减负增效提质方案
2014/05/23 职场文书
销售员岗位职责
2014/06/09 职场文书
2015暑假假期总结
2015/07/13 职场文书
2016大学生优秀志愿者事迹材料
2016/02/25 职场文书
调研报告的主要写法
2019/04/18 职场文书
MySQL分库分表与分区的入门指南
2021/04/22 MySQL
pandas数值排序的实现实例
2021/07/25 Python
在HTML中引入CSS的几种方式介绍
2021/12/06 HTML / CSS