Cocos Creator中的worldMatrix:解析游戏引擎中的世界矩阵

Cocos Creator 3D模型外描边实现:轻量级“模型膨胀法”全解析 在实时渲染与游戏开发中,外描边(Outline)是一种常见且重要的视觉特效技术,常用于高亮角色、标识交互物体或增强卡通风格。其核心原理是通过特定算法突出模型的边缘轮廓,为玩家提供清晰的空间与焦点指引。从技术实现层面,主流的描边方案主要分为基于屏幕后处理的边缘检测和基于模型几何扩张的着色器处理,前者效果精确但性能开销大,后者更轻量但需处理模型数据。在移动端或性能敏感的场景下,如何在视觉效果与运行效率间取得平衡,成为开发者面临的关键工程挑战。本文聚焦于Cocos Creator引擎,深入探讨一种基于“模型膨胀法 阅读详情

在游戏开发中,Cocos Creator是一个常用的游戏引擎,它提供了许多功能和工具来简化游戏的创建过程。其中一个重要的概念是worldMatrix(世界矩阵),它在游戏对象的渲染和变换过程中发挥着关键作用。本文将详细解释worldMatrix的含义和用法,并提供相应的源代码示例。

首先,让我们来解释一下worldMatrix的概念。在Cocos Creator中,每个游戏对象都有一个变换组件,该组件包含了位置、旋转和缩放等信息。worldMatrix是一个4x4的矩阵,用于表示游戏对象的世界空间中的变换。它将局部坐标系转换为世界坐标系,从而确定游戏对象在场景中的位置和方向。

为了更好地理解worldMatrix的作用,我们来看一个简单的示例。假设我们有一个名为"player"的游戏对象,它的初始位置是(0, 0, 0),没有旋转和缩放。我们可以使用以下代码获取它的worldMatrix:

// 获取player节点
const playerNode = cc.find("player");

// 获取player节点的transform组件
const transform = playerNode.getComponent(cc.Transform);

// 获取player节点的worldMatrix
const worldMatrix = transform.getWorldMatrix();

在上面的代码中,我们首先使用cc.find函数找到名为"player"的节点,然后从该节点获取cc.Transform组件。最后,我们使用getWorldMatrix方法获取了该节点的worldMatrix。

一旦我们获得了worldMatrix,我们就可以使用它来进行各种操作。例如,我们可以通过将世界坐标与worldMatrix相乘,将一个点从世界空间转换为局部空间:

const worldPos = cc.v3(10, 0, 0); // 世界空间中的点

// 将世界坐标转换为局部坐标
const localPos = worldMatrix.getInversed().transformPoint(worldPos);

在上面的代码中,我们定义了一个在世界空间中的点worldPos,然后使用getInversed方法获取worldMatrix的逆矩阵,并使用transformPoint方法将世界坐标转换为局部坐标。

除了转换坐标之外,worldMatrix还可以用于执行其他类型的变换操作,例如旋转和缩放。下面是一个示例,演示如何使用worldMatrix对游戏对象进行旋转:

const rotationAngle = 45; // 旋转角度

// 创建旋转矩阵
const rotationMatrix = cc.mat4();
cc.mat4.fromRotation(rotationMatrix, cc.quat().fromEuler(cc.v3(0, 0, rotationAngle)));

// 将旋转矩阵应用到worldMatrix
const rotatedWorldMatrix = cc.mat4();
cc.mat4.multiply(rotatedWorldMatrix, worldMatrix, rotationMatrix);

// 更新player节点的worldMatrix
transform.setWorldMatrix(rotatedWorldMatrix);

在上面的代码中,我们首先创建了一个旋转矩阵rotationMatrix,然后使用cc.mat4.multiply方法将它与worldMatrix相乘,得到一个经过旋转的新的worldMatrix。最后,我们使用setWorldMatrix方法将更新后的worldMatrix应用到player节点上。

总结来说,Cocos Creator中的worldMatrix是一个用于表示游戏对象在世界空间中的变换的矩阵。它通过将局部坐标系转换为世界坐标系,确定了游戏对象在场景中的位置和方向。通过获取和操作worldMatrix,我们可以实现各种渲染和变换效果,使Cocos Creator中的worldMatrix:深入解析游戏引擎中的世界矩阵

worldMatrix是Cocos Creator游戏引擎中一个重要的概念,它在游戏对象的渲染和变换过程中扮演着关键角色。本文将详细解释worldMatrix的含义和用法,并提供相应的源代码示例。

首先,让我们来解释一下worldMatrix的概念。在Cocos Creator中,每个游戏对象都有一个变换组件,该组件包含了位置、旋转和缩放等信息。worldMatrix是一个4x4的矩阵,用于表示游戏对象的世界空间中的变换。它将局部坐标系转换为世界坐标系,从而确定游戏对象在场景中的位置和方向。

为了更好地理解worldMatrix的作用,我们来看一个简单的示例。假设我们有一个名为"player"的游戏对象,它的初始位置是(0, 0, 0),没有旋转和缩放。我们可以使用以下代码获取它的worldMatrix:

// 获取player节点
const playerNode = cc.find("player");

// 获取player节点的transform组件
const transform = playerNode.getComponent(cc.Transform);

// 获取player节点的worldMatrix
const worldMatrix = transform.getWorldMatrix();

在上面的代码中,我们首先使用cc.find函数找到名为"player"的节点,然后从该节点获取cc.Transform组件。最后,我们使用getWorldMatrix方法获取了该节点的worldMatrix。

一旦我们获得了worldMatrix,我们就可以使用它来进行各种操作。例如,我们可以通过将世界坐标与worldMatrix相乘,将一个点从世界空间转换为局部空间:

const worldPos = cc.v3(10, 0, 0); // 世界空间中的点

// 将世界坐标转换为局部坐标
const localPos = worldMatrix.getInversed().transformPoint(worldPos);

在上面的代码中,我们定义了一个在世界空间中的点worldPos,然后使用getInversed方法获取worldMatrix的逆矩阵,并使用transformPoint方法将世界坐标转换为局部坐标。

除了转换坐标之外,worldMatrix还可以用于执行其他类型的变换操作,例如旋转和缩放。下面是一个示例,演示如何使用worldMatrix对游戏对象进行旋转:

const rotationAngle = 45; // 旋转角度

// 创建旋转矩阵
const rotationMatrix = cc.mat4();
cc.mat4.fromRotation(rotationMatrix, cc.quat().fromEuler(cc.v3(0, 0, rotationAngle)));

// 将旋转矩阵应用到worldMatrix
const rotatedWorldMatrix = cc.mat4();
cc.mat4.multiply(rotatedWorldMatrix, worldMatrix, rotationMatrix);

// 更新player节点的worldMatrix
transform.setWorldMatrix(rotatedWorldMatrix);

在上面的代码中,我们首先创建了一个旋转矩阵rotationMatrix,然后使用cc.mat4.multiply方法将它与worldMatrix相乘,得到一个经过旋转的新的worldMatrix。最后,我们使用setWorldMatrix方法将更新后的worldMatrix应用到player节点上。

总结来说,Cocos Creator中的worldMatrix是一个用于表示游戏对象在世界空间中的变换的矩阵。它通过将局部坐标系转换为世界坐标系,确定了游戏对象在场景中的位置和方向。通过获取和操作worldMatrix,我们可以实现各种渲染和变换效果,使游戏在视觉上更加出色。

GPU蒙皮动画:实现10万同屏2D割草游戏性能优化方案 骨骼动画是2D游戏角色动作表现的核心技术,其原理是通过骨骼层级驱动网格顶点变换,实现流畅的角色动作。传统CPU蒙皮方案在计算每个顶点的最终位置时,会因逐顶点计算和大量Draw Call导致性能瓶颈,难以支撑大规模同屏单位。GPU蒙皮技术将骨骼变换矩阵上传至GPU,在顶点着色器中并行完成蒙皮计算,其技术价值在于彻底解放CPU,并通过单次Draw Call渲染海量实例,极大提升了渲染效率。这一优化方案在需要处理大量独立动画单位的应用场景中尤为重要,例如割草游戏、弹幕射击和大规模策略游戏。本文探讨的GPU Spi 阅读详情

相关推荐

Spine骨骼动画挂点技术:从原理到实战解决抖动与动态绑定

在2D游戏开发中,骨骼动画是实现角色流畅运动的核心技术。其原理是通过骨骼层级与变换矩阵驱动角色部件运动,为角色换装、装备附着等动态交互提供了技术基础。Spine作为业界广泛使用的骨骼动画解决方案,其挂点(Attachment)技术允许将外部游戏对象精准绑定到特定骨骼上,是实现动态装备系统、技能特效跟随等高级功能的关键。然而,开发者常遇到挂点物体抖动、位置错位等工程难题,其根源往往在于动画更新与节点变换的时序不同步,或矩阵计算精度问题。通过理解骨骼、插槽与变换矩阵的底层关联,并掌握引擎提供的更新生命周期与同步

congjukun0600的博客 468

深入Cocos Creator 3D源码:从引擎架构到渲染管线实战解析

游戏引擎是现代游戏开发的核心框架,它通过封装底层图形API和硬件交互,为开发者提供高效的开发工具链。其核心原理在于构建一个实时循环系统,协调资源管理、逻辑更新与图形渲染。在技术价值上,深入理解引擎源码能显著提升开发者解决复杂问题、进行深度性能优化的能力,尤其在处理渲染管线、内存管理及跨平台兼容性等高级场景时至关重要。本文聚焦于Cocos Creator 3D,通过剖析其**节点与组件系统**、**主循环机制**以及**3D渲染管线**等核心模块,结合**性能优化**与**调试技巧**,为开发者提供从原理到实

weixin_30325971的博客 323

fastadmin云快充充电桩系统部署文档uniapp

多商户 嘎嘎快充V1.0部署文档 一、服务器环境: 服务器配置4核心8GB内存5M带宽以上配置 VX next1402 只支持linux环境 nginx1.22 php7.2 开启redis、fileinfo扩展,关闭禁用workerman gatewayworkerman需要的函数,如pcntl相关的函数 mysql5.7 supervisor redis 注意: 1.站点必须配置https、websocket配置wss 2.注意开放直连服务端口:2024,并添加到安全组 二、必

itholiday2014的博客 1629

[ Maya 基础 ]关于 Maya 中各种 space、transform matrix 的理解

Maya 中有物体空间、世界空间、local matrix、world matrix 的定义,新手小白很容易搞混,这里将几个概念的定义进行整理,帮助大家理清。

weixin_44895572的博客 2888

从零到一:STM32CubeMX虚拟串口开发中的常见陷阱与优化策略

本文深入探讨了STM32CubeMX在USB虚拟串口开发中的常见问题与优化策略,涵盖数据流吞吐量瓶颈、实时性约束等核心挑战。通过实战案例和代码示例,详细解析了波特率同步异常、数据丢失等问题的解决方案,并提供了DMA配置和中断优先级调优的高级技巧,帮助开发者提升STM32虚拟串口的性能和可靠性。

weixin_29164185的博客 370

DSPACE仿真平台的使用

DSPACE仿真平台的使用 文章目录DSPACE仿真平台的使用1.ModelDesk新建项目2.MotionDesk引入项目3.ControlDesk引入项目4.项目整合运行 我们使用DSPACE仿真平台软件来模拟小汽车的自动驾驶。 总共需要用到DSPACE大类下的三个软件:ModelDesk、ControlDesk、MotionDesk。 1.ModelDesk新建项目 在桌面上点击ModelDesk图标,打开DSPACE—ModelDesk 选择 File 标签,侧边栏选择 New,点击 New A

qq_42582489的博客 7527

软渲染器(Directx11)三之世界矩阵,相机变换矩阵,透视投影矩阵,透视除法,视口变换矩阵

其实各大矩阵具体的推导过程我就不给出了,我直接给出矩阵具体的形式和实现代码,以及那些大牛推导矩阵详细的文章:   一,世界矩阵(WorldMatrix)   我一般称世界矩阵为SRT矩阵,SRT分别是"Scale","rotate","translate"三个单词的缩写,也就是世界矩阵由缩放矩阵,旋转矩阵,平移矩阵构成的     (1)缩放矩阵(ScaleMatrix) 假设在X轴...

qq_29523119的博客 3737

别再踩坑了!CAPL脚本里局部变量和全局变量的那些“怪事”(附CANoe实测代码)

本文深度解析CAPL脚本中局部变量和全局变量的特殊机制,揭示其与通用编程语言的差异。通过实测代码展示静态局部变量的默认行为和全局变量的节点隔离特性,并提供高效避坑指南,帮助汽车网络测试工程师避免常见陷阱。

weixin_30225755的博客 293

threejs之updateWorldMatrix的实现原理

首先我们需要定义几个额外的概念,包括表示位置、旋转、和缩放的类,以及一个用于表示4x4矩阵并执行矩阵运算的类。这个函数的目的是更新一个物体在世界空间中的位置,考虑到它的局部变换(位置、旋转、缩放)以及它的父对象的世界矩阵(如果有的话)。方法如何根据对象的局部变换(位置、旋转、缩放)以及父对象的世界矩阵来更新对象的世界矩阵。这个方法首先更新自身的局部矩阵,然后如果有父对象,它会和父对象相乘。首先,让我们定义一些基础的数学工具类,包括。这个实现提供了一个基础框架,从中可以看出。(用于表示旋转), 和。

qq_35094120的博客 1676

【ROS学习笔记】13.ROS中的坐标管理系统

文章目录1 机器人中的坐标变换2 TF功能包TF坐标变换如何实现?TF的一个小案例3 小程序:小海龟跟随实验打开小程序查看当前的TF树坐标相对位置关系可视化1(tf_echo)坐标相对位置关系可视化2(rviz) 本节学习ROS中的坐标管理系统。 (部分图摘自:b站【古月居】古月·ROS入门21讲) 1 机器人中的坐标变换 机器人运动学的核心,描述任意两个坐标系之中任意两个向量之间的变换,可以用一个4×4的变换矩阵(Transformation Matrices)来描述它的平移和旋转变化。 变换矩阵中有包括

takedachia的博客 4338

1.2 从“跟网”到“构网”:技术范式的历史性转变

新型电力系统面临"双高"特征带来的稳定性挑战,促使并网控制技术从"跟网型"向"构网型"范式转变。传统跟网型变流器作为受控电流源依赖强电网,存在短路电流能力有限、易失稳等缺陷;而构网型变流器模拟同步发电机特性,作为受控电压源具备自主建立电压/频率、提供虚拟惯性、增强短路容量和改善系统阻尼四大核心能力。这一技术范式转变使变流器从电网跟随者变为构建支撑者,成为解决新能源大规模接入稳定性的关键。

技术工作者 722

公式中的矩阵操作如何应用于CocosCreator

前言 在使用CocosCreator开发的过程中,少不了进行一些数学运算。有一些是通用的图形学公式,去各种地方百度到的,但以一种数学论述的方式存在。猛然碰见,不是太好实现在程序之中。下载就以3次B样条曲线的公式为例来说明如何将矩阵操作“翻译成”CocosCreator中的JavaScript/TypeScript代码。 需求 这次我们发现需要画出3次B样条曲线,也就是输入n个点,来确定一条空间曲线路径,比如在游戏中需要飞行轨迹,弹道轨迹之类的需求。一般情况下,我们都去搜索引擎里面找相关的数学框架,其实就是数

Ethan|实验室 861

ArcGIS实验教程——实验十七:缓冲区分析(Buffer Analysis)

【实验描述】缓冲区(Buffer)是为了识别某一地理实体对周围地物的影响而在其周围建立的一定宽度多边形区域,缓冲区分析(Buffer Analysis)是用来确定不同地理要素的空间临近性或接近程度的一种分析方法。作为GIS的空间分析方法之一,缓冲区分析的应用范围特别广泛,常用于分析矢量实体对周围的影响。例如,工厂排放的废水废气所影响的空间范围等等。 一、缓冲区的基本概念 1、缓冲区 是地理空间目标的一种影响范围或服务范围。 2、缓冲区分析 指根据分析对象的点、线、面实体,自动建立它们周围一定距离的带

智慧空间实验室 1万+

Cocos Creator 做数字游戏 | 二维矩阵节点的链式选择和取消!

效果预览操作方法点击选中开始节点,按住拖动到相邻的节点,相邻节点添加至选择链中,沿着链往回拖,将会取消之前选择的节点,如上面效果图所示。实现流程1. 按照 6*6 添加单元内容,单元内的...

一枚小工 631

YOLOv8架构革命:通过EfficientViT融合实现精度-速度的帕累托突破

目标检测领域长期存在精度与速度的权衡难题。视觉Transformer(ViT)的引入解决了长距离依赖问题,但其巨大的计算复杂度制约了实时应用。最新研究表明,将轻量级ViT与YOLO架构融合,可在几乎不损失推理速度的前提下,将mAP提升3-8个百分点。这种架构改进方案已在工业检测、自动驾驶、安防监控等多个领域得到验证,在保持实时性的同时显著提升了复杂场景下的检测可靠性。通过模块化设计,可以灵活适配不同规模的YOLOv8模型,为实际应用提供精度-速度的帕累托最优解。

FJN110的博客 148

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Cocos Creator 中 _worldMatrix 到底是什么(上)

Cocos Creator 中 _worldMatrix 到底是什么(上) 1. (矩阵)Matrix是什么,有什么用 (矩阵)Matrix一个神奇的存在?在开发过程中对里边各项值的含义是不是抓耳挠腮,百思不得其解?今天我们就来庖丁解牛,拨开它的神秘面纱。由于内容较多,关于Cocos Creator 中的_worldMatrix会分为三篇文章完成。最终形成一个完整的demo 首先我们先看...

weixin_30883777的博客 402

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Cocos Creator 3.8集成Tiled地图:三合一脚本实现加载、校验与坐标转换

在2D游戏开发中,地图系统是构建游戏世界的基础组件,它决定了游戏场景的视觉呈现与逻辑交互。其核心原理在于将外部编辑器制作的地图数据解析为引擎可识别的节点与资源,并建立精确的坐标映射关系,以实现角色移动、碰撞检测等游戏逻辑。这一技术的核心价值在于提升开发效率,实现内容制作与程序逻辑的解耦,让美术和策划能独立使用专业工具(如Tiled)进行内容创作。在Cocos Creator引擎中,集成Tiled地图是一个常见的实践场景,尤其涉及地图加载、版本兼容性校验以及游戏世界坐标与地图瓦片坐标的相互转换。本文提供的“三

congxian2511的博客 359

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Cocos Creator主角居中原理与四层动态校准方案

在跨平台游戏开发中,'节点居中'并非简单的坐标设置,而是涉及设计分辨率、适配策略与渲染坐标系映射的系统性问题。其底层原理源于Cocos Creator特有的两层坐标体系:逻辑层(设计分辨率坐标系)与渲染层(设备像素坐标系)。技术价值在于保障UI与角色在多设备、多分辨率、横竖屏及动态缩放场景下的视觉一致性与操作稳定性。典型应用场景包括教育类App适配iPad与安卓平板、儿童识字应用的旋转容错、微信小游戏低端机性能优化等。本文深入解析Canvas位移补偿、动态缩放系数提取、世界坐标重算及边界安全区容错四大核心机

weixin_29009971的博客 140

Cocos Creator虚拟列表性能优化:原理、实现与避坑指南

在游戏与应用开发中,UI渲染性能是影响用户体验的关键因素,尤其是当界面包含大量动态列表时。虚拟化渲染技术通过仅渲染可视区域内的元素,复用节点实例,从根本上解决了因节点数量过多导致的内存与渲染性能瓶颈。其核心原理在于动态计算可视区域、精准映射数据索引以及高效的节点池管理,从而将渲染开销控制在恒定范围。这项技术对于提升滚动流畅度、降低Draw Call与内存占用具有重要价值,广泛应用于排行榜、背包系统、聊天记录等需要展示大量数据的场景。本文结合VirtualCullingViewport等社区方案与工程实践,深

weixin_30367873的博客 376

深度解析Cocos引擎的5种屏幕震动实现方案与性能优化策略

Cocos引擎作为一款开源跨平台游戏开发框架,在屏幕震动效果实现方面提供了多种技术方案。对于进阶开发者和技术决策者而言,理解不同震动方案的技术原理、性能特性和适用场景至关重要。本文将从Cocos引擎的架构设计出发,深入分析5种屏幕震动实现方案,并提供基于实际测试的性能对比数据。 ## Cocos引擎屏幕震动的技术架构基础 Cocos引擎的屏幕震动效果实现依赖于其核心的数学计算模块和渲染管线。在

gitblog_01023的博客 405

Cocos Creator动画性能优化实战:从原理到高性能动画系统设计

动画系统是现代游戏开发的核心模块,其性能直接影响用户体验。从原理上讲,动画通过驱动骨骼、顶点或序列帧的变换来实现视觉运动,涉及CPU逻辑计算、GPU渲染管线与内存管理的协同。其技术价值在于,高效动画系统能支撑复杂角色动作、华丽技能特效与流畅交互反馈,是提升游戏品质与留存的关键。在应用场景上,无论是2D横版、3D动作还是大型多人在线游戏,动画性能优化都是项目必须面对的工程挑战。本文聚焦Cocos Creator引擎,深入探讨如何通过**GPU Instancing**技术实现同屏角色批量渲染,并运用**动画状

weixin_34367257的博客 446

【性能优化】cocoscreator 共享节点-动效复用方案

性能优化

s178435865的专栏 1851

cocosCreator2.3.x渲染流程深入剖析笔记(二)

顶点属性的更新 上一节我们了解了Renderflow,这次我们研究node节点矩阵坐标的生成和更新。 为了方便理解,以下我们全部都使用2d节点来进行代码的跟踪。 对openGL中的矩阵变化不熟悉的可以看这里 https://learnopengl-cn.github.io/01%20Getting%20started/07%20Transformations/#_1. 在engine/cocos2...

weixin_43952667的博客 1271

cocos源码四 《渲染之对顶点数据的封装Node节点》

与节点属性相关的几个核心变量_trs、_matrix、_worldMatrix、_localMatDirty、_worldMatDirty。_trs:存储节点的position、rotation、scale_matrix:存储节点的缩放、位移、旋转三者合一的变化矩陈(仿射矩陈):存储节点的世界矩陈。本地矩陈与父节点的世界矩陈相乘而来:本地脏数据的标记 当你修改position、rotation、scale、anchor时会进行对应的标记。它是个二进制数表示。根据标记更新_matrix。

z1067832450_的专栏 1110

cocos cretor shader effect-the book of shader-4.二维矩阵

2D Matrices(二维矩阵) 前面章节 TheBookofShader开始 Shaping functions(造型函数) Color(颜色) Shapes(形状) 平移 之前的章节我们学习了如何制作一些图形 - 而如何移动它们的技巧则是借助移动它们自身的参考坐标系。我们只需要给 st 变量加上一个包含每个片段的位置的向量。这样就移动了整个坐标系。 还是画着比较更容易解释,如上图所示: 取消下面代码中的注释( color = vec3(st.x,st.y,0.0);),看下坐标空间是如何平移的

JoeyHuangzx的专栏 687

cocos2D-X源码分析之从cocos2D-X学习OpenGL(10)----MVP矩阵

上一篇介绍了openGL的变换和坐标系,本篇就介绍游戏引擎中一个重要的概念-MVP矩阵,首先涉及到透视投影和正交投影的概念,关于这个概念请参考之前的文章(文章地址:http://blog.youkuaiyun.com/bill_man/article/details/48199593),其中介绍了透视投影和正交投影的概念。       上一篇文章介绍了MVP矩阵的概念,但是并没有在代码上涉及。       

手机游戏开发学习笔记 1万+
上一篇: Cocos2d-x:将CCSprite转换为黑白色
下一篇: Node销毁时仍被标记为运行中!——解决该问题的方法与源代码示例
WeCapture
博客等级 码龄3年 1粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值