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实现ipsec开权限实例
Nov 11 Python
优化Python代码使其加快作用域内的查找
Mar 30 Python
python多进程实现进程间通信实例
Nov 24 Python
Python使用matplotlib绘制多个图形单独显示的方法示例
Mar 14 Python
在Python中关于使用os模块遍历目录的实现方法
Jan 03 Python
python爬取基于m3u8协议的ts文件并合并
Apr 26 Python
python实现中文文本分句的例子
Jul 15 Python
python爬虫 urllib模块发起post请求过程解析
Aug 20 Python
Python pytesseract验证码识别库用法解析
Jun 29 Python
python程序如何进行保存
Jul 03 Python
Python列表的深复制和浅复制示例详解
Feb 12 Python
OpenCV-Python实现轮廓的特征值
Jun 09 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
在Windows系统上安装PHP运行环境文字教程
2010/07/19 PHP
smarty内置函数{loteral}、{ldelim}和{rdelim}用法实例
2015/01/22 PHP
php实现mysql数据库连接操作及用户管理
2015/11/08 PHP
php 中phar包的使用教程详解
2018/10/26 PHP
php写入文件不覆盖的实例讲解
2019/09/17 PHP
在IE下:float属性会影响offsetTop的取值
2006/12/22 Javascript
jquery时间下拉框小例子
2013/04/15 Javascript
js切换光标示例代码
2013/10/10 Javascript
jQuery中scrollLeft()方法用法实例
2015/01/16 Javascript
JavaScript动态添加style节点的方法
2015/06/09 Javascript
浅谈angular.js中实现双向绑定的方法$watch $digest $apply
2015/10/14 Javascript
基于Bootstrap使用jQuery实现输入框组input-group的添加与删除
2016/05/03 Javascript
Javascript实现代码折叠功能
2016/08/25 Javascript
jquery,js简单实现类似Angular.js双向绑定
2017/01/13 Javascript
使用Vue构建可重用的分页组件
2018/03/26 Javascript
原生JavaScript实现remove()和recover()功能示例
2018/07/24 Javascript
vue.js实现的幻灯片功能示例
2019/01/18 Javascript
vue使用混入定义全局变量、函数、筛选器的实例代码
2019/07/29 Javascript
React中使用UMEditor的方法示例
2019/12/27 Javascript
javascript实现画板功能
2020/04/12 Javascript
微信小程序图片右边加两行文字的代码
2020/04/23 Javascript
原生js实现html手机端城市列表索引选择城市
2020/06/24 Javascript
vue配置多代理服务接口地址操作
2020/09/08 Javascript
Python 列表(List)操作方法详解
2014/03/11 Python
浅谈python可视化包Bokeh
2018/02/07 Python
python实现Decorator模式实例代码
2018/02/09 Python
python3编写ThinkPHP命令执行Getshell的方法
2019/02/26 Python
Python2与Python3的区别点整理
2019/12/12 Python
Python web如何在IIS发布应用过程解析
2020/05/27 Python
Expedia爱尔兰:酒店、机票、租车及廉价假期
2017/01/02 全球购物
大专自我鉴定范文
2013/10/23 职场文书
奥巴马开学演讲稿
2014/05/15 职场文书
中职生求职信
2014/07/01 职场文书
先进党组织事迹材料
2014/12/26 职场文书
优秀教师主要事迹材料
2015/11/04 职场文书
数据结构课程设计心得体会
2016/01/15 职场文书