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


相关推荐: 武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  Laravel如何使用Vite进行前端资源打包?(配置示例)  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  无锡营销型网站制作公司,无锡网选车牌流程?  如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程  瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口  Laravel如何创建和注册中间件_Laravel中间件编写与应用流程  如何在服务器上三步完成建站并提升流量?  如何在七牛云存储上搭建网站并设置自定义域名?  如何用景安虚拟主机手机版绑定域名建站?  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  如何为不同团队 ID 动态生成多个非值班状态按钮  laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法  java获取注册ip实例  大连 网站制作,大连天途有线官网?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  jQuery 常见小例汇总  EditPlus中的正则表达式实战(6)  公司网站制作需要多少钱,找人做公司网站需要多少钱?  Angular 表单中正确绑定输入值以确保提交与验证正常工作  Laravel Session怎么存储_Laravel Session驱动配置详解  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  javascript基本数据类型及类型检测常用方法小结  如何在Windows服务器上快速搭建网站?  如何用花生壳三步快速搭建专属网站?  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  新三国志曹操传主线渭水交兵攻略  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  UC浏览器如何设置启动页 UC浏览器启动页设置方法  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  javascript读取文本节点方法小结  如何快速搭建FTP站点实现文件共享?  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  Python高阶函数应用_函数作为参数说明【指导】  如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】  大连网站制作公司哪家好一点,大连买房网站哪个好?  如何快速搭建高效简练网站?  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  Laravel如何为API编写文档_Laravel API文档生成与维护方法  ,南京靠谱的征婚网站?  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  Python文件操作最佳实践_稳定性说明【指导】  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  C++时间戳转换成日期时间的步骤和示例代码  高性能网站服务器部署指南:稳定运行与安全配置优化方案  如何快速生成橙子建站落地页链接?