pygame实现弹力球及其变速效果

发布时间 - 2026-01-11 02:09:05    点击率:

本文实例为大家分享了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()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# pygame  # 弹力球  # 变速  # python使用pygame实现笑脸乒乓球弹珠球游戏  # Python基于pygame实现的弹力球效果(附源码)  # python开发的小球完全弹性碰撞游戏代码  # Python实现的弹球小游戏示例  # python编写弹球游戏的实现代码  # Python基于Tkinter模块实现的弹球小游戏  # python实现弹跳小球  # python实现小球弹跳效果  # pygame库实现移动底座弹球小游戏  # 按下  # 大家分享  # 接触到  # 具体内容  # 仅此  # 大家多多  # 类属  # def  # object  # sys  # random  # Circle  # vel_x  # pos_y  # randint  # pos_x  # vel_y  # radius  # 框体后  # strong 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何快速上传建站程序避免常见错误?  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复  油猴 教程,油猴搜脚本为什么会网页无法显示?  Python自动化办公教程_ExcelWordPDF批量处理案例  php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】  如何在建站主机中优化服务器配置?  laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  如何在万网自助建站平台快速创建网站?  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  微信公众帐号开发教程之图文消息全攻略  Laravel怎么为数据库表字段添加索引以优化查询  Laravel如何实现事件和监听器?(Event & Listener实战)  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  网站制作免费,什么网站能看正片电影?  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程  EditPlus中的正则表达式实战(6)  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  网页设计与网站制作内容,怎样注册网站?  如何在服务器上配置二级域名建站?  javascript基于原型链的继承及call和apply函数用法分析  在线制作视频的网站有哪些,电脑如何制作视频短片?  linux top下的 minerd 木马清除方法  活动邀请函制作网站有哪些,活动邀请函文案?  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  如何正确选择百度移动适配建站域名?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  Laravel如何与Docker(Sail)协同开发?(环境搭建教程)  如何在IIS7上新建站点并设置安全权限?  Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  Laravel如何使用.env文件管理环境变量?(最佳实践)  三星、SK海力士获美批准:可向中国出口芯片制造设备  ,交易猫的商品怎么发布到网站上去?  网站图片在线制作软件,怎么在图片上做链接?  Laravel如何使用查询构建器?(Query Builder高级用法)  如何快速生成可下载的建站源码工具?  SQL查询语句优化的实用方法总结  济南网站建设制作公司,室内设计网站一般都有哪些功能?  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  独立制作一个网站多少钱,建立网站需要花多少钱?  Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】  Laravel如何创建自定义Artisan命令?(代码示例)  Laravel如何处理文件下载请求?(Response示例)  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明  Linux后台任务运行方法_nohup与&使用技巧【技巧】