来玩小游戏吧,吃金币,跳跃小球,你绝对没玩过(pygame制作,附源码)

自己做的一个C语言小游戏——吃金子           本周数据结构课程设计,哥挑了个简单点的题目,用C语言编写了一个图形界面的吃金子小游戏。基本想法是:      定义了一个数组,通过数据映射到屏幕的坐标。       然后通过一些画图函数,画出淘金者(红色圆)和金子(黄色圆)。       通过键盘的上下左右键控制淘金者的上下左右移动。      每隔六秒钟,游戏界面会刷一次,此时金子会更换位置。     阅读详情
import random
import time

import pygame.sprite
import sys


class Util:
    @staticmethod
    def click_check(sprite):
        if pygame.mouse.get_pressed()[0]:
            if sprite.rect.collidepoint(pygame.mouse.get_pos()):
                return True
        return False

class MusicMange:
    @staticmethod
    def play_bg_music():

        pygame.mixer.music.load("beijing.mp3")
        pygame.mixer.music.play(True)

    @staticmethod
    def play_sound(name):
        sound = pygame.mixer.Sound(name)
        sound.play()
class UiSprice(pygame.sprite.Sprite):
    def __init__(self, name):
        super().__init__()
        self.image = pygame.image.load(name)
        self.rect = self.image.get_rect()

    def update(self):
        pass


class BackSprice(UiSprice):
    def __init__(self, name, center):
        super().__init__(name)
        self.rect.center = center

    def update(self):
        pass


class BackMange:
    def __init__(self, gm):
        self.gm = gm
        self.back_group = pygame.sprite.Group()
        self.background = BackSprice("back1.jpg", (300, 200))
        self.background.add(self.back_group)

    def update(self):
        self.back_group.update()
        self.back_group.draw(self.gm.screen)


class PersonSprice(UiSprice):
    def __init__(self, name, center):
        super().__init__(name)
        self.rect.center = center

    def update(self):
        key_prssed = pygame.key.get_pressed()
        if key_prssed[pygame.K_LEFT] and self.rect.left > 0:
            self.rect.left -= 1
        if key_prssed[pygame.K_RIGHT] and self.rect.right < 600:
            self.rect.right += 1


class PersonManger:
    def __init__(self, gm):
        self.gm = gm
        self.per_group = pygame.sprite.Group()
        self.person = PersonSprice("img/4.jpg", (25, 375))
        self.person.add(self.per_group)

    def update(self):
        self.per_group.update()
        self.per_group.draw(self.gm.screen)


class GoldSprice(UiSprice):
    def __init__(self, name, center):
        super().__init__(name)
        self.rect.center = center

    def update(self):
        self.rect.top += 1
        if self.rect.top > 400:
            self.kill()


class GoldMange:
    def __init__(self, gm):
        self.gm = gm
        self.time_shi = 2
        self.gold_group = pygame.sprite.Group()

    def appear(self):
        self.gold_group = pygame.sprite.Group()
        for i in range(random.randint(3, 10)):
            self.gold = GoldSprice("gold.png", (random.randint(0, 600), random.randint(0, 0)))
            self.gold.add(self.gold_group)

    def update(self):
        self.time_shi -= 0.003
        if self.time_shi <= 0:
            self.time_shi = 2
            self.appear()

        self.gold_group.update()
        self.gold_group.draw(self.gm.screen)


class ExplosiveSprice(UiSprice):
    def __init__(self, name, center):
        super().__init__(name)
        self.rect.center = center

    def update(self):
        self.rect.top += 1
        if self.rect.top > 400:
            self.kill()


class ExplosiveMange:
    def __init__(self, gm):
        self.gm = gm
        self.time_shi = 3
        self.explosive_group = pygame.sprite.Group()

    def grow(self):

        for i in range(6):
            self.explosive = ExplosiveSprice("zhadan.png", (random.randint(0, 600), random.randint(0, 0)))
            self.explosive.add(self.explosive_group)

    def update(self):

        self.time_shi -= 0.003
        if self.time_shi <= 0:
            self.time_shi = 3
            self.grow()

        self.explosive_group.update()
        self.explosive_group.draw(self.gm.screen)


class AppleSprice(UiSprice):
    def __init__(self, name, center):
        super().__init__(name)
        self.rect.center = center

    def update(self):
        self.rect.top += 1
        if self.rect.top > 400:
            self.kill()


class AppleMange:
    def __init__(self, gm):
        self.gm = gm
        self.time_shi = 4
        self.apple_group = pygame.sprite.Group()

    def occur(self):
        for i in range(3):
            self.apple = AppleSprice("pingguo.png", (random.randint(0, 600), random.randint(0, 0)))
            self.apple.add(self.apple_group)

    def update(self):
        self.time_shi -= 0.003
        if self.time_shi <= 0:
            self.time_shi = 4
            self.occur()
        self.apple_group.update()
        self.apple_group.draw(self.gm.screen)


class AuttonSprice(UiSprice):
    def __init__(self, name, center):
        super().__init__(name)
        self.rect.center = center


class AuttonMange:
    def __init__(self, gm):
        self.gm = gm
        self.count = 0
        self.tally = 3
        self.go_group = pygame.sprite.Group()
        self.go = AuttonSprice("agin.jpg", (300, 200))
        self.go.add(self.go_group)
        self.agin_group = pygame.sprite.Group()
        self.argin = AuttonSprice("kaishi.jpg", (25, 25))
        self.argin.add(self.agin_group)

        self.exit_group = pygame.sprite.Group()
        self.exit_jie = AuttonSprice("exit.png", (300, 300))
        self.exit_jie.add(self.exit_group)

        self.zai_group = pygame.sprite.Group()
        self.zai = AuttonSprice("zailai.png", (300, 200))
        self.zai.add(self.zai_group)

    def update(self):
        if self.gm.state == "ready":
            self.go_group.update()
            self.go_group.draw(self.gm.screen)
            if Util.click_check(self.go):
                self.gm.state = "gaming"
        if self.gm.state == "gaming":
            self.agin_group.update()
            self.agin_group.draw(self.gm.screen)
            if Util.click_check(self.argin):
                pygame.time.wait(5000)
            self.gm.persom_mange.update()
            self.gm.gold_mange.update()
            self.gm.explosive_mange.update()
            self.gm.apple_mange.update()
            self.font = pygame.font.Font("font/font.ttf", 32)
            self.score_surface = self.font.render(f"Score:{self.count}", True, "#FF4500")
            self.gm.screen.blit(self.score_surface, (450, 15))

            self.font = pygame.font.Font("font/font.ttf", 32)
            self.score_surface = self.font.render(f"HP:{self.tally}", True, "#FF4500")
            self.gm.screen.blit(self.score_surface, (200, 15))
            if pygame.sprite.groupcollide(self.gm.persom_mange.per_group, self.gm.gold_mange.gold_group, False, True):
                self.count += 1
            if pygame.sprite.groupcollide(self.gm.persom_mange.per_group, self.gm.explosive_mange.explosive_group,
                                          False, True):
                self.tally -= 1
                self.count -= 10
                if self.tally <= 0:
                    pygame.sprite.groupcollide(self.gm.explosive_mange.explosive_group, self.gm.persom_mange.per_group,
                                               False, True)
                    self.gm.state = "end"
            if pygame.sprite.groupcollide(self.gm.persom_mange.per_group, self.gm.apple_mange.apple_group, False, True):
                self.count += 3

        if self.gm.state == "end":
            self.zai_group.update()
            self.zai_group.draw(self.gm.screen)
            self.exit_group.update()
            self.exit_group.draw(self.gm.screen)
            self.font = pygame.font.Font("font/simkai.ttf", 32)
            self.score_surface = self.font.render(f"你的分数为:{self.count}", True, "#FF4500")
            self.gm.screen.blit(self.score_surface, (200, 75))
            if Util.click_check(self.zai):
                self.gm.state = "gaming"
                self.tally += 3
                self.count = 0
            if Util.click_check(self.exit_jie):
                exit()

class GameMange:
    def __init__(self):
        pygame.init()
        self.state = "ready"
        self.clock = pygame.time.Clock()
        self.screen = pygame.display.set_mode((600, 400))
        pygame.display.set_caption("吃金币")
        self.back_mange = BackMange(self)
        self.apple_mange = AppleMange(self)
        self.explosive_mange = ExplosiveMange(self)
        self.gold_mange = GoldMange(self)
        self.persom_mange = PersonManger(self)
        self.autton_mange = AuttonMange(self)

    def chen_chenk(self):
        self.clock.tick(600)
        self.back_mange.update()

    def run(self):
        while True:
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    pygame.quit()
                    sys.exit()
            self.chen_chenk()
            self.autton_mange.update()
            pygame.display.flip()


gm = GameMange()
gm.run()

运行截图 

 

import pygame
import random

# 初始化Pygame
pygame.init()

# 游戏窗口尺寸
WIDTH = 800
HEIGHT = 600

# 定义颜色
WHITE = (255, 255, 255)
BLUE = (0, 0, 255)

# 创建窗口
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Jumping Ball Game")

# 加载小球图像
ball_image = pygame.image.load("gold.png")
ball_rect = ball_image.get_rect()
ball_rect.center = (WIDTH // 2, HEIGHT // 2)

# 设置小球的速度和跳跃高度
ball_speed = 5
jump_height = 100
is_jumping = False

# 游戏循环
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # 处理用户输入
    keys = pygame.key.get_pressed()
    if keys[pygame.K_SPACE] and not is_jumping:
        is_jumping = True

    # 更新小球位置
    if is_jumping:
        if ball_rect.y > HEIGHT - jump_height:
            ball_rect.y -= ball_speed
        else:
            is_jumping = False
    else:
        if ball_rect.y < HEIGHT - ball_rect.height:
            ball_rect.y += ball_speed

    # 绘制背景和小球
    screen.fill(WHITE)
    screen.blit(ball_image, ball_rect)

    # 刷新屏幕
    pygame.display.flip()

# 退出游戏
pygame.quit()

按空格键它可以向上跳起,之后落下 

Pandas入门教程(二十二):股票数据分析实战——yfinance 获取数据、技术指标与收益率分析 把 Pandas 用在真实场景,才能体会它的价值。本文以茅台股票为例,用 yfinance 获取历史行情,完成缺失值处理与列筛选,绘制收盘价曲线,计算 SMA 移动平均线与 RSI 相对强弱指数,并通过日收益率、累计收益率和波动率完成完整的量化分析流程。 阅读详情

相关推荐

如何处理动态语言(Python / JS)的“隐形”调用链?

本文揭示动态语言(Python/JS)中静态AST解析导致调用链“断链”的核心问题,提出通过运行时追踪补全图谱的解决方案。基于Code-Graph-RAG的cgr trace机制,分别利用pytest插件与V8 Profiler捕获真实调用路径,将动态边合并至静态图谱,并在权重体系中提升动态边优先级。实践表明,该方法可显著提升图谱覆盖率,实现“结构+行为”双视角理解代码,为MCP与Rerank系统提供可靠支持。

xianyinsuifeng的博客 417

[动态规划]砸金蛋

Python代码 class Solution: def maxCoins(self, nums): nums = [1] + nums + [1] length = len(nums) dp = [[0] * length for _ in range(length)] for c in range(2, length): for j in range(length - c): ..

ylzf2008的博客 479

RISC-V V向量指令集学习笔记——访存指令

RISC-V V向量指令集学习笔记——访存指令

qq_41724469的博客 5136

AI全栈实战 | 3.9-01 爬虫入门:requests 加 BeautifulSoup 三分钟跑通,但 90% 的人栽在这 4 个“礼貌“问题上

⚠️:本文内容仅用于。请遵守目标站点的服务条款与相关法律法规,不得对目标服务造成负担,不得采集、传播个人隐私数据。技术是中性的,边界在你手里。爬虫的入门技术(requests 发请求 + BeautifulSoup 解析)三分钟就能学会。真正区分"会用爬虫"和"会做爬虫的人"的,是这篇我们跑通"请求→解析→存储"的最小闭环,然后重点把"合规与礼貌"这根弦给你绷上。

源码获取 | 运行部署 | 定制二开修改,如果回复不及时请耐心等待,请见谅。 421

Palantir解密:“本体”的建模逻辑及其扩展方向

上一篇重点从对现实世界建模的角度探讨了“本体”在数字化架构中的核心意义。这里借Palantir的“本体”概念、解析Palantir只是起点,目标旨在以他山之石攻玉——探索数字世界的底层架构逻辑,最终为构建自主体系提供思考。Palantir以“本体论”为核心的建模方案是否代表终极答案,不宜过早下结论,但其思路值得深入剖析。

SZSDQJC的博客 2635

电磁场可视化

电磁场可视化 如题,做了电磁场可视化这么久了,也是颇有些心得了,简单描述一下怎么做这个项目的。 开始时是从最基本的OpenGL开始做的,必不可少的翻了许多的文献,后来是直接在unity中做,发现效果挺好,而且可控性强好多。反复琢磨后,发现可视化的渲染,有几种思路,第一就是用linerender,画线的方法,另一种就是用shader。 第一种我通过unity自带的linewave插件可以做到 详细的就是,linewave插件可以轻松画出曲线等,并且可以添加碰撞,控制频率幅度长度等一切的条件数值,而且令人惊喜

weixin_43979140的博客 1671

从一段视频到可漫游的 4D 有声场景:思路拆解与最小复现手记

只需一段手机视频,你就能生成可"走进去"的 4D 有声场景:转头时狗叫声方向随之变化,走近时声音更清晰。本文拆解 Video-to-4DAVScene 的核心思路,手把手带你用几十行 Python 搭出最小管线,把视频中的运动物体变成带空间位置的声源,并附上三个真实踩坑的排障经验,代码可直接跑。🎧

helloagent的博客 239

激光雷达与相机融合(四)----基于激光雷达与相机的碰撞检测

在这一部分,基于前面的各个部分内容,将利用激光雷达和相机实现目标的检测分类及单目标跟踪,并对车辆前方的车辆目标计算相应的碰撞时间TTC。计算方法分别利用相机和雷达实现。 1.系统的总体架构: 2.TTC计算 简单介绍一下通过激光雷达和相机计算碰撞时间的原理: 利用激光雷达点计算碰撞时间:首先根据检测框聚类出前车目标的点,并过滤掉这些点中的离群点,然后找出这些点中相对于本车最近的点,基于前后两帧以及数据采集频率就可以求解出相对速度,然后用当前帧的距离除以速度得出当前的TTC。但该方法对最近点的选取稳定性不是

张飞飞的博客 3986

【每天一个 Python 小案例30】Python 基础知识综合小项目:我的工具盒

作为系列收官,本篇把前 29 篇的知识点合成一个能直接用的命令行工具"我的工具盒":计算器(用 ast 解析表达式,不碰 eval)、单位换算与温度转换(一张换算表 + 特例分支)、记账与分类统计(Decimal + JSON 持久化)、以及用"字典当命令表"把菜单和业务逻辑解耦的主循环。文中对比了 eval 的安全隐患与 ast 白名单的做法,解释了 lambda 闭包在字典里的写法与晚绑定陷阱,并在最后给出整个系列的知识地图,把变量、数据结构、控制流、函数、类、异常、文件、标准库八块内容对应到具体篇目。

xinjiyaya的博客 427

STM32H7多通道ADC数据采集实战:CubeMX配置ADC1/2/3+DMA/BDMA+Cache避坑全记录

本文详细解析了STM32H7多通道ADC数据采集的实战配置,涵盖CubeMX中ADC1/2/3与DMA/BDMA的协同设置及Cache一致性处理。通过硬件架构分析、DMA优化技巧和Cache避坑指南,帮助开发者实现高精度数据采集,适用于电机控制、环境监测等嵌入式系统。

weixin_28744613的博客 292

endNote X9 增加 / 删除参考文献 文献编号自动更新

EndNote X9 插入参考文献常见问题总结。增删参考文献 文献编号自动更新

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 7497

10分钟完成第一个Python小游戏

第一个项目不用找复杂的,‌直接选「猜数字小游戏」对应的教程‌就好——几乎所有入门教程都会讲这个项目,资料最多、遇到问题随便搜就能找到解决方法,不会卡壳,30分钟肯定能做完,非常容易建立信心。‌教程链接‌:直接搜标题👉 ‌《Python零基础入门项目:30分钟写完猜数字游戏》‌(优先选黑马程序员、鱼C-小甲鱼这两个UP主的版本,播放量都是百万级,口碑稳定)‌教程地址‌:打开菜鸟教程官网→找到「Python 实例」板块,直接在线写代码运行。全程不跳步,30分钟就能做完,做完能直接运行玩,成就感拉满。

mF44Job8l的博客 61

Python爬虫实战:利用Playwright与反反爬技术抓取Crunchbase企业数据

在当今数据驱动的商业环境中,获取准确的企业信息对于市场分析、竞争情报和投资决策至关重要。Crunchbase作为全球领先的企业信息平台,包含了数百万家公司、投资者和关键人员的详细数据。本文将深入探讨如何使用Python最新爬虫技术Playwright,结合多种反反爬策略,高效抓取Crunchbase企业数据。我们将从爬虫基础概念讲起,逐步深入到高级技巧,并提供完整的代码实现,帮助读者掌握现代网络数据采集的核心技术。网络爬虫技术自互联网诞生以来经历了显著演变。

2201_76125261的博客 1833

二进制木马免杀-Python 分离免杀与 Web 挂马

二进制木马免杀-Python 分离免杀与 Web 挂马

2503_94637398的博客 269

手把手教你学simulink(11.6)--Simulink 航空航天场景:基于Simulink的飞机俯仰控制系统的数学模型

自动驾驶系统在航空航天领域具有重要应用,特别是在商业航空、军用航空和无人机等领域。PID控制器因其简单且有效的特性,被广泛应用于飞行控制。Simulink提供了一个强大的平台,用于建模、仿真和分析动态系统,非常适合设计和测试自动驾驶系统的控制器。通过本项目的实施,我们成功设计和仿真了一个用于控制飞机俯仰角的PID控制器。该项目展示了从系统建模、控制器设计、仿真验证到结果分析的完整流程,为PID控制器的设计提供了有价值的参考。希望这个实例能够为你的航空航天项目提供有用的指导。

MHD0815的博客 566

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级 备考:莫队算法离线区间查询详解

备赛进行时:第十八届蓝桥杯软件赛报名已于 2026-10-08 10:00 开启、12-18 14:00 截止,省赛定在 2027-04-10(C/C++·Python 程序设计 9:00–13:00);中国电子学会 2026 年 12 月软件编程(C/C++ 一级至十级、Python 一级至六级)考级报名 9/23–12/2 16:00、统考 12-12;全国青少年信息素养大赛 2026—2027 赛季算法应用主题赛也已进入复盘练兵窗口。

IT_Scratch的博客 163

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

我用 200 行代码写了个“代码屎山检测器“,扫完公司的老项目后我沉默了

这个工具不能帮你把屎山铲平,但至少能让你知道自己面对的是多大的山,也能在代码评审时用数据说话——“这个 PR 把圈复杂度从 12 推到了 18,能不能拆一下?毕竟,不能量化的东西,就没法改进。

xixiaoyunya的博客 251

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

魔塔社区微调训练Qwen2-1.5B-Instruct模型并烧录到‌RK3568开发板教程

本文基于Ubuntu 22.04 + CUDA 13.0.3环境,使用LLaMA-Factory框架对Qwen2-1.5B-Instruct模型进行LoRA微调,训练儿童故事生成专用模型。通过配置qwen模板、制作alpaca格式数据集、执行sft训练并合并LoRA权重,最终将模型转换为GGUF格式,并量化为Q4_K_M以适配RK3568嵌入式平台。全程支持国产镜像加速下载与显存优化,实现高效轻量化部署。

浅清秋慕夏的博客 187

【回眸】DeepSeek V4.1 Flash 快速上手与实战

本文介绍如何高效本地部署开源大模型,通过现代化工具链实现分钟级环境搭建。聚焦显存优化、一键安装、代码调用与多轮对话实现,解决“显存不足”“连接超时”等痛点,提供参数调优与结构化输出技巧,助力开发者在离线场景下快速构建稳定、高效的本地推理系统。

啤酒鸭的物联网开发记录博客 227

智叟云集-手机证据抓取系统的工程结构与应用入口

本文系统阐述手机证据抓取系统的工程结构与应用入口,涵盖四大层面:工程目录划分(Android、Python服务、Web页面、测试与构建工具);Android组件通过Manifest声明可启动页面,主界面由MainActivity管理;Python服务通过run.py解析参数并启动FastAPI应用,支持远程访问;浏览器页面采用HTML/CSS/JS分离架构,静态资源通过路径关联,实现动态交互。各模块分工明确,协同构建可运行的采集系统。

2301_77178996的博客 236

Java Arrays.asList 常见坑详解|UnsupportedOperationException、数组联动、基本类型 bug

解析 Arrays.asList 常见开发陷阱,演示 UnsupportedOperationException、底层数组引用共享、基本类型数组问题,区分 Arrays 内部 ArrayList 与 java.util.ArrayList,给出数组转 List 的各种场景正确代码。

weixin_42617033的博客 487

利用python中matplotlib.pyplot库绘制图

plt.plot(x,y) # x,y是每个点的坐标,plot()把每个点按顺序画折线。plt.subplots(2,2)表示绘制2*2的子图布局,axs[0,0]表示在第0行第0列绘制子图...coordinates_i[:,0]表示获取每一行(每一个spot)的第0列(x坐标)coordinates_i[:,1]表示获取每一行(每一个spot)的第0列(y坐标)plot.subplot(2,2,1) 表示子图布局是2*2的,开始绘制第一个。也可以导入数据绘制。可以设置color属性,设置颜色。

qq_46147236的博客 102

【随笔】KV缓存量化:省下的显存,要付出多少数值误差

用可运行量化器解释位宽、比例信息、分组和离群值的关系,核算KV缓存实际载荷,并给出Transformers配置与容量、延迟、质量验收方法。

code2cat的博客 467

【每天一个 Python 小案例29】Python 实现商品购物车

本篇实现一个购物车:商品目录、加入商品、修改数量、移除商品、查看小计、计算满减与 VIP 折扣、结算扣库存。核心设计是"目录与购物车分离"——目录存商品主数据,购物车只存 {商品编号: 数量};金额一律用 Decimal 并做 ROUND_HALF_UP 舍入。折扣部分讲清阶梯满减的匹配顺序(阈值从高到低、命中即停)与叠加顺序(先满减、后打折),并用一次完整结算演示 706 元如何变成 613.70 元。

xinjiyaya的博客 215

Spring Boot 自动配置原理

Spring Boot 自动配置由 @EnableAutoConfiguration 导入选择器,读取 jar 中 .imports 候选清单,经去重、排序、排除后逐类做条件判断,通过才注册 Bean。延迟导入让用户 Bean 优先,@ConditionalOnMissingBean 使默认配置让位。失效时查清单和 Negative matches。

2401_89855466的博客 392

Python的字典

Python字典是存储键值对的数据结构,通过键(key)快速查找对应的值(value)。可使用{}定义,支持增删改查操作:通过dict[key]查询或修改值,get()方法安全获取并设置默认值,del dict[key]删除键值对,keys()、values()和items()用于遍历。items()结合双变量循环可高效遍历所有键值对,提升代码可读性与灵活性。

qq_43010954的博客 198
上一篇: 用pygame做一个小游戏,可以玩一整天(基础框架)
下一篇: 这两道题你会了吗?
凉风絮雨
博客等级 码龄5年 8粉丝 16原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值