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解析nginx日志文件
May 11 Python
小白如何入门Python? 制作一个网站为例
Mar 06 Python
python numpy元素的区间查找方法
Nov 14 Python
python3实现名片管理系统
Nov 29 Python
解决python中画图时x,y轴名称出现中文乱码的问题
Jan 29 Python
python程序控制NAO机器人行走
Apr 29 Python
Django的models模型的具体使用
Jul 15 Python
python 使用while写猜年龄小游戏过程解析
Oct 07 Python
python 双循环遍历list 变量判断代码
May 04 Python
浅析python函数式编程
Sep 26 Python
Python 带星号(* 或 **)的函数参数详解
Feb 23 Python
Python基础之条件语句详解
Jun 16 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中存储用户ID和密码到mysql数据库的方法
2013/02/06 PHP
php基于session实现数据库交互的类实例
2015/08/03 PHP
php使用pclzip类实现文件压缩的方法(附pclzip类下载地址)
2016/04/30 PHP
nodejs中exports与module.exports的区别详细介绍
2013/01/14 NodeJs
JavaScript实现的购物车效果可以运用在好多地方
2014/05/09 Javascript
JavaScript数组Array对象增加和删除元素方法总结
2015/01/20 Javascript
nodejs爬虫抓取数据之编码问题
2015/07/03 NodeJs
JavaScript来实现打开链接页面的简单实例
2016/06/02 Javascript
AngularJS基础 ng-focus 指令简单示例
2016/08/01 Javascript
Angular Module声明和获取重载实例代码
2016/09/14 Javascript
浅谈Nodejs中的作用域问题
2016/12/26 NodeJs
原生JS 购物车及购物页面的cookie使用方法
2017/08/21 Javascript
JS基于正则表达式实现的密码强度验证功能示例
2017/09/21 Javascript
Vue中正确使用jQuery的方法
2017/10/30 jQuery
vue2.0使用swiper组件实现轮播的示例代码
2018/03/03 Javascript
vue 过滤器filter实例详解
2018/03/14 Javascript
Angular4学习笔记router的简单使用
2018/03/30 Javascript
浅谈AngularJS中$http服务的简单用法
2018/05/15 Javascript
Vue.js 利用v-for中的index值实现隔行变色
2018/08/01 Javascript
JS实现骰子3D旋转效果
2019/10/24 Javascript
Python使用稀疏矩阵节省内存实例
2014/06/27 Python
Python中实现的RC4算法
2015/02/14 Python
使用Python编写简单的端口扫描器的实例分享
2015/12/18 Python
shelve  用来持久化任意的Python对象实例代码
2016/10/12 Python
python非递归全排列实现方法
2017/04/10 Python
python使用筛选法计算小于给定数字的所有素数
2018/03/19 Python
python二维码操作:对QRCode和MyQR入门详解
2019/06/24 Python
简单了解python协程的相关知识
2019/08/31 Python
pytorch 实现查看网络中的参数
2020/01/06 Python
Python模块常用四种安装方式
2020/10/20 Python
美国最好的保健品打折网店:Swanson
2017/08/04 全球购物
考试诚信承诺书
2014/05/23 职场文书
员工安全责任书范本
2014/07/24 职场文书
主持人大赛开场白
2015/05/29 职场文书
2016年最美孝心少年事迹材料
2016/02/26 职场文书
2019七夕节祝福语36句,快来收藏吧
2019/08/06 职场文书