模拟飞翔的小鸟android版 文档一

android飞翔的小鸟……  MainActivity.java部分:Code: package com.flybird.cn;      import android.app.Activity;   import android.os.Bundle;   import android.os.Handler;   import android.o 阅读详情

第一步:创建好surfaceView模版


第二步:在网上载取了一个小鸟的图片,大小为60*38


第三步:点击屏幕,控制小鸟向上飞,然后自动下落,按差屏幕不放手时,小鸟旋停不动


gameView代码:


//自定义的mySurfaceView类,继承sufaceView实现surfaceHolder.clllback和线程Runnable
public class MyGameView extends SurfaceView implements SurfaceHolder.Callback,Runnable{


<span style="white-space:pre">	</span>private SurfaceHolder sh;//SurfaceView控制器
<span style="white-space:pre">	</span>private Canvas iCanvas;//画布
<span style="white-space:pre">	</span>private Paint ipaint;//画笔
<span style="white-space:pre">	</span>private Path ipath;//路径
<span style="white-space:pre">	</span>private boolean isRunning=true;//布尔参数,死循环提交绘图方法,直到退出false
<span style="white-space:pre">	</span>private float screenWidth, screenHeight;// 屏幕宽/高
<span style="white-space:pre">	</span>float x,y;//小鸟出现时的x,y坐标
<span style="white-space:pre">	</span>Bitmap bitmap_Bird;
<span style="white-space:pre">	</span>BirdManager birdManager;
<span style="white-space:pre">	</span>Context mContext;


<span style="white-space:pre">	</span>//带上下文参的构造方法,在里面实例化组件
<span style="white-space:pre">	</span>public MyGameView(Context context) {
<span style="white-space:pre">		</span>super(context);
<span style="white-space:pre">		</span>mContext = context;


<span style="white-space:pre">		</span>sh=this.getHolder();//获到surfaceHolder控制器<span style="white-space:pre">		</span>
<span style="white-space:pre">		</span>ipaint=new Paint();//获取画笔
<span style="white-space:pre">		</span>ipath=new Path();//获到路径
<span style="white-space:pre">		</span>ipaint.setColor(Color.RED);//设置画笔颜色
<span style="white-space:pre">		</span>ipaint.setStyle(Style.STROKE);//设置画笔样式()
<span style="white-space:pre">		</span>ipaint.setStrokeWidth(5);//设置画笔的宽度<span style="white-space:pre">		</span>


<span style="white-space:pre">		</span>sh.addCallback(this);//监听控制器(添加回调函数)
<span style="white-space:pre">		</span>this.setFocusable(true);//设置当前焦点
<span style="white-space:pre">		</span>
<span style="white-space:pre">		</span>bitmap_Bird = BitmapFactory.decodeResource(context.getResources(), R.drawable.bird60);
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>//死循环每隔100毫秒调用自定义具体画的方法,直到退出设为false
<span style="white-space:pre">	</span>@Override
<span style="white-space:pre">	</span>public void run() {
<span style="white-space:pre">		</span>while(isRunning){
<span style="white-space:pre">			</span>drawView();//调用自定义具体画的方法
<span style="white-space:pre">			</span>try {
<span style="white-space:pre">				</span>Thread.sleep(100);<span style="white-space:pre">			</span>
<span style="white-space:pre">			</span>} catch (InterruptedException e) {
<span style="white-space:pre">				</span>e.printStackTrace();
<span style="white-space:pre">			</span>}
<span style="white-space:pre">		</span>}
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>//自定义画法
<span style="white-space:pre">	</span>private void drawView() {
<span style="white-space:pre">		</span>try {
<span style="white-space:pre">			</span>if(sh!=null){
<span style="white-space:pre">		</span>iCanvas=sh.lockCanvas();//获取画布
<span style="white-space:pre">		</span>//设置画笔和位图没有锯齿
<span style="white-space:pre">		</span>iCanvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG));
<span style="white-space:pre">		</span>iCanvas.drawColor(Color.WHITE);
<span style="white-space:pre">		</span>birdManager.drawBird(iCanvas);
<span style="white-space:pre">		</span>//iCanvas.drawBitmap(bitmap_Bird, x, y, null);
<span style="white-space:pre">			</span>}
<span style="white-space:pre">		</span>} catch (Exception e) {
<span style="white-space:pre">		</span>}finally{
<span style="white-space:pre">			</span>if(iCanvas!=null){
<span style="white-space:pre">				</span>sh.unlockCanvasAndPost(iCanvas);//解锁画布并提交
<span style="white-space:pre">			</span>}
<span style="white-space:pre">		</span>}




<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>//触屏事件
<span style="white-space:pre">	</span>@Override
<span style="white-space:pre">	</span>public boolean onTouchEvent(MotionEvent event) {<span style="white-space:pre">		</span>
<span style="white-space:pre">		</span>switch (event.getAction()) {
<span style="white-space:pre">		</span>case MotionEvent.ACTION_DOWN://按下去
<span style="white-space:pre">			</span>System.out.println("down");
<span style="white-space:pre">			</span>//birdManager.moveUp();
<span style="white-space:pre">			</span>//如果在这加setIsMove(false),当按着屏幕不放手时,小鸟玄停不动
<span style="white-space:pre">			</span>birdManager.setIsMove(false);


<span style="white-space:pre">			</span>break;
<span style="white-space:pre">		</span>case MotionEvent.ACTION_UP://放开
<span style="white-space:pre">			</span>System.out.println("up");
<span style="white-space:pre">			</span>//如果加下面注释掉的代码,小鸟会不停的向下掉
//<span style="white-space:pre">			</span>birdManager.setIsMove(false);
//<span style="white-space:pre">			</span>try {
//<span style="white-space:pre">				</span>Thread.sleep(50);
//<span style="white-space:pre">			</span>} catch (InterruptedException e) {
//<span style="white-space:pre">				</span>// TODO 自动生成的 catch 块
//<span style="white-space:pre">				</span>e.printStackTrace();
//<span style="white-space:pre">			</span>}
<span style="white-space:pre">			</span>birdManager.setIsMove(true);
<span style="white-space:pre">			</span>new Thread(){
<span style="white-space:pre">				</span>public void run() {<span style="white-space:pre">					</span>
<span style="white-space:pre">					</span>birdManager.moveUp();
<span style="white-space:pre">				</span>};
<span style="white-space:pre">			</span>}.start();
<span style="white-space:pre">			</span>break;
<span style="white-space:pre">		</span>case MotionEvent.ACTION_MOVE://移动
<span style="white-space:pre">			</span>break;
<span style="white-space:pre">		</span>default:
<span style="white-space:pre">			</span>break;
<span style="white-space:pre">		</span>}
<span style="white-space:pre">		</span>//invalidate();//立刻重绘
<span style="white-space:pre">		</span>return true;//返回true,提交给当前视图


<span style="white-space:pre">	</span>}


<span style="white-space:pre">	</span>@Override
<span style="white-space:pre">	</span>public void surfaceCreated(SurfaceHolder holder) {
<span style="white-space:pre">		</span>new Thread(this).start();//启动线程
<span style="white-space:pre">	</span>}


<span style="white-space:pre">	</span>@Override
<span style="white-space:pre">	</span>public void surfaceChanged(SurfaceHolder holder, int format, int width,
<span style="white-space:pre">			</span>int height) {
<span style="white-space:pre">		</span>screenWidth = (float) getWidth();
<span style="white-space:pre">		</span>screenHeight = (float) getHeight();
<span style="white-space:pre">		</span>System.out.println("screenWidth="+screenWidth);
<span style="white-space:pre">		</span>System.out.println("screenHeight="+screenHeight);
<span style="white-space:pre">		</span>x  = screenWidth/8;
<span style="white-space:pre">		</span>y  = screenHeight*3/4;
<span style="white-space:pre">		</span>birdManager = new BirdManager(mContext,x,y,screenHeight);
<span style="white-space:pre">	</span>}


<span style="white-space:pre">	</span>@Override
<span style="white-space:pre">	</span>public void surfaceDestroyed(SurfaceHolder holder) {
<span style="white-space:pre">		</span>//退出界面,先设循环参数为false,等线程停了,再睡个300毫秒,再真正退出
<span style="white-space:pre">		</span>isRunning=false;
<span style="white-space:pre">		</span>try {
<span style="white-space:pre">			</span>Thread.sleep(300);<span style="white-space:pre">			</span>
<span style="white-space:pre">		</span>} catch (InterruptedException e) {
<span style="white-space:pre">			</span>e.printStackTrace();
<span style="white-space:pre">		</span>}<span style="white-space:pre">		</span>
<span style="white-space:pre">	</span>}


}

小鸟控制类BirdManager



public class BirdManager {
<span style="white-space:pre">	</span>Context mContext;
<span style="white-space:pre">	</span>Bitmap bitmap_Bird;
<span style="white-space:pre">	</span>float temp, left, top,mScreenHeight;
<span style="white-space:pre">	</span>int bitmap_Bird_Width,bitmap_Bird_Height;


<span style="white-space:pre">	</span>public BirdManager(Context context, float x, float y,float screenHeight) {
<span style="white-space:pre">		</span>mContext = context;
<span style="white-space:pre">		</span>mScreenHeight = screenHeight;
<span style="white-space:pre">		</span>left = x;
<span style="white-space:pre">		</span>top = y;
<span style="white-space:pre">		</span>temp = y;
<span style="white-space:pre">		</span>bitmap_Bird = BitmapFactory.decodeResource(context.getResources(),
<span style="white-space:pre">				</span>R.drawable.bird60);
<span style="white-space:pre">		</span>bitmap_Bird_Width = bitmap_Bird.getWidth();
<span style="white-space:pre">		</span>bitmap_Bird_Height = bitmap_Bird.getHeight();
<span style="white-space:pre">	</span>}


<span style="white-space:pre">	</span>public void drawBird(Canvas canvas) {
<span style="white-space:pre">		</span>canvas.drawBitmap(bitmap_Bird, left, top, null);


<span style="white-space:pre">	</span>}


<span style="white-space:pre">	</span>boolean isMove;
<span style="white-space:pre">	</span>
<span style="white-space:pre">	</span>public void setIsMove(boolean b){
<span style="white-space:pre">		</span>isMove = b;
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>public boolean getIsMove(){


<span style="white-space:pre">		</span>return isMove;
<span style="white-space:pre">	</span>}


<span style="white-space:pre">	</span>public void moveUp() {<span style="white-space:pre">		</span>
<span style="white-space:pre">		</span>temp = top;
<span style="white-space:pre">		</span>while (temp - 10 <= top && getIsMove()) {
<span style="white-space:pre">			</span>try {
<span style="white-space:pre">				</span>Thread.sleep(50);
<span style="white-space:pre">			</span>} catch (InterruptedException e) {
<span style="white-space:pre">				</span>e.printStackTrace();
<span style="white-space:pre">			</span>}
<span style="white-space:pre">			</span>top = top - 10;


<span style="white-space:pre">		</span>}
<span style="white-space:pre">		</span>// 到达当前顶部,然后上落
<span style="white-space:pre">		</span>while (top < mScreenHeight-bitmap_Bird_Height && getIsMove()) {
<span style="white-space:pre">			</span>try {
<span style="white-space:pre">				</span>Thread.sleep(50);
<span style="white-space:pre">			</span>} catch (InterruptedException e) {
<span style="white-space:pre">				</span>e.printStackTrace();
<span style="white-space:pre">			</span>}
<span style="white-space:pre">			</span>top = top + 5;
<span style="white-space:pre">		</span>}
<span style="white-space:pre">		</span>if (top == mScreenHeight-bitmap_Bird_Height) {
<span style="white-space:pre">			</span>return;// 嫁出最外围循环,当小鸟掉到最底部时
<span style="white-space:pre">		</span>}


<span style="white-space:pre">	</span>}


}

Android应用开发之Bird fly游戏制作(一) 好久没有更新博客了,最近试着做了一下之前火过一段时间的小游戏Bird fly,来跟大家分享一下我的经验。 首先上一个效果图: 我们来简单做一下第一步分析:1、绘制游戏背景。 2、绘制水管。 3、绘制地板的背景。 4、绘制那只小鸟。 5、绘制分数 接下来第二步的分析:1、底板的移动 2、水管默认的向左移动 3、小鸟的自动下落,以及碰到水管或地板之后游戏over 4、水管的自动生成以及移除 接下 阅读详情

相关推荐

微信小程序Flappy Bird实战源码包:含Canvas游戏前端+SpringMVC分数管理后端

一套开箱即用的微信小程序版飞翔的小鸟游戏源码,前端用Canvas实现小鸟跳跃、重力感应控制、障碍物随机生成、碰撞判定和实时计分,适配主流安卓与iOS机型;后端基于Java SpringMVC搭建,提供用户提交分数、获取排行榜、数据存储与查询等完整接口,数据库配置轻量,支持H2或MySQL快速切换;工程结构清晰分离,小程序代码与Java后端模块独立存放,附带README说明、基础配置文件、接口调用示例及简易部署指南;无需额外依赖,本地启动即可测试全部功能,适合练手小程序开发、Java Web接口编写、前后端联

code8的博客 187

模拟飞翔的小鸟android版 终结文档

花了三天时间运用surfaceView开发,难度不大,初学者可以参考一下 具体代码,请去下载本人优快云中的源码,地址是:http://download.youkuaiyun.com/detail/bilichen006/9306975

天龙的博客 881

飞翔的小鸟java源码-CyberBall:使用AndroidNDK测试项目

飞翔的小鸟java源码网络球 Android NDK 测试项目 APK 可通过该链接下载: 任务描述:使用 Android NDK 制作您自己的非常流行(但令人沮丧)的游戏版本。 “鸟”受重力影响向右飞。 触摸屏幕会抛出“鸟”。 障碍物是从地板和天花板伸出的不同高度的柱子。 如果“鸟”撞到柱子、地板或天花板,游戏就结束了。 玩家的目标:飞得越远越好,赚取尽可能多的积分 技术要求: 游戏必须使用Android NDK制作 只允许使用 C++(使用最少的 Java) 必须使用 OpenGL ES 2.0 或更高版本进行渲染 编写游戏时不应使用任何第三方图形或物理游戏引擎和库。 不允许 Cocos2D、GLKit、SpriteKit、QT、GLUT、SDL、Box2d、BulletPhysics 不允许 我非常重视这些限制。 所以这个项目中没有这些库,甚至没有 png 加载器。 纹理和几何的某些部分在代码中进行了硬编码,这适用于这样的小型演示,但不能很好地扩展到真实游戏中。 本游戏使用Android CMake插件 观看游戏视频! 游戏包含2个主要场景: 欢迎现场 游戏的主菜单场景。 它在界

LuoguP1941[NOIP2014] 飞扬的小鸟 解题报告【背包型DP】

Luogu P1941

中国计算机学会成都七中(高新校区)委员会委员活动室 463

飞翔的小鸟(安卓源码,完美运行,横版)

基于安卓的飞翔的小鸟,无错,基于安卓eclipse,有需要的同学可以参考!

模仿作死鸟flappy bird做的安卓游戏源码

模仿作死鸟flappy bird做的安卓游戏源码,utf-8编码,可直接运行,用的AndEngine游戏引擎

模拟飞翔的小鸟android版 文档二

这节主要是处理水管移动,以级水管与小鸟碰撞检测 水管manager /** * 为了水管图片拉申会变形,采取了从一张大长管图片载取一部分(包括圆头),长直部分载取,这样圆头就不会变形 * 先保存一张800*50的长圆管,然后获取变量temp,从而得出要载取图片的大小 * @author Administrator * */ public class ObstacleManag

天龙的博客 658

飞翔的小鸟游戏制作源码

飞翔的小鸟压缩包内含游戏c++源码和游戏程序,以及一个贪吃蛇程序

第一个游戏项目:飞翔的小鸟(Cocos) 优化发布

上一篇写到飞翔的小鸟的主题功能已经写的差不多了,但是还有许多功能和细节并没有做好,以下就是优化这个游戏项目的具体步骤: 需要优化的地方 ① 游戏加分和分数显示功能 ② 游戏音乐导入和控制 ③小鸟飞行动作实现 ⑤ 游戏开始按钮 ⑥ 游戏结束界面 ⑦ ⑧ ⑨ ⑩ ⑪ ⑫ ⑬ ⑭ ⑮ ⑯ ⑰ ⑱ ⑲ ⑳ 一、游戏加分和分数显示功能 先实现分数显示功能:新建一个score节点,在其下新建一个Label组件,将Font资源拖入组件下的font下。并在代码中新建 一个与之关联的score节点。 再实现加分功能: 要明

weixin_43284350的博客 1351

飞翔的小鸟源代码文件

小鸟游戏的代码。可以下载下来试试看。

飞翔的小鸟

天龙版飞翔的小鸟,用了三天时间做出来,模仿那个好红好红会飞的小鸟APP,游戏开发难度不大,果然创意才是最重要的

基于Android的飞鸟动画APP设计与实现

先通过看视频mp4了解本次实验要完成的任务。下面的实验内容把本次实验分成了18个功能来完成,可以只完成其中一部分功能,并在最后指明完成了哪些功能。利用逐帧动画(FrameAnimation)实现小鸟动画(ImageView)。编程说明:RelativeLayout可以加上白云背景。参考资料:动画.pdf参考源码:FrameAnim使用资源:sprite1.png~sprite8.png利用TouchDown事件和TranslateAnimation实现在屏幕上引导小鸟飞行。参考资料:安卓程序设计(二)p26

毕业作品网站 1153

从AAAI 2025被拒到ACM MM 2025录用:我的论文投稿经验与教训总结

本文分享了作者从AAAI 2025被拒到ACM MM 2025录用的论文投稿经验与教训。详细解析了格式要求、可复现性清单等关键细节,提供了精准转投策略和提升录用概率的实用技巧,帮助研究者避免常见错误并优化投稿策略。

weixin_29207533的博客 502

【Java实现小游戏】飞翔的小鸟(源码)

游戏玩法:通过鼠标点击使小鸟上下移动穿过柱子并完成得分,小鸟碰到柱子或掉落到地面上都会结束游戏。(游戏内图片) 下面是实现这个游戏的代码(图片太多,都发太麻烦,需要图片的私信领取): Brid类: BridGame类: Column类: Ground类:......

weixin_63257947的博客 8101

AI编程实战:用Spec Coding与Codex半小时重构全栈项目

这次我们来看一个能显著提升全栈开发效率的实战方法:利用 AI 编程工具 Codex 和 Spec Coding 工作流,将原本需要数周甚至一个月的全栈项目重构工期,压缩到半小时级别。这不是概念探讨,而是基于现有工具链的、可立即上手的工程实践。 对于前端开发者或全栈工程师而言,面对老旧项目重构、技术栈升级或从零搭建新项目时,最大的痛点往往是重复性、模式化的代码编写工作。手动编写 CRUD 接口、页面组件、状态管理和联调测试,耗时费力且容易出错。而 AI 辅助编程的核心价值,正是在于将开发者从这些“体力活”中解

weixin_33525298的博客 290

stm32f103c8t6+esp8266在WiFi下通过手机控制外设

stm32f103c8t6+esp8266在WiFi下通过手机控制外设前言 前言 通过上一篇,介绍了esp8266的基本功能,这篇将用stm32c8t6配合esp8266进行数据交互,实现用手机通过无线的方式去控制外设、开关等;这里相当于把stm32作为上一篇的串口助手和esp8266进行通信; ...

weixin_45430735的博客 1万+

Android60分钟搞定《FlappyBird》飞扬的小鸟游戏

自定义控件系列,前前后后分享了三四篇了,其实,在自定义控件的道路中,我们只仅仅迈出了一小步,未来的时间我们仍需走在路上,去探索那些未知的自定义领域。今天,是个周末的时刻,少些烦躁的代码,来一起实现一个有趣的类似FlappyBird小游戏吧;对于FlappyBird这个小游戏,相信在看这篇文章的你并不陌生,其富有挑战又有一丝乐趣,让玩者玩的不亦乐乎,曾经风靡一时,虽已经离发行过去了三年多的时间,但仍

知足常乐 5358

论文阅读-Whisper语音识别(OpenAI)

Whisper 是一个自动语音识别(ASR,Automatic Speech Recognition)系统,OpenAI 通过从网络上收集了 68 万小时的多语言,其中11万小时覆盖96 种语言,12万小时的语言标号为英语,用多任务(multitask)监督数据对 Whisper 进行了训练。

一位不是很硕的鉴伪方向硕士 6366

飞翔的小鸟代码详解

游戏开始界面 游戏运行界面 游戏得分界面 游戏结束界面 开发准备 1、eclipse开发工具 2、java语言 3、jdk1.5以上 一、案例分析 写任何代码都是先分析代码需求再干活,千万不要盲目的去干,盲目的去干就算干完了也是错的。 飞翔的小鸟算是一个比较基础的入门案例,代码相对简单。设计这款游戏需要先分析出需要使用到哪些对象: 1、背景对象:游戏的背景图 2、地面对象:游戏启动地面移动相对的实现小鸟飞翔 3、游戏开始和结束的状态:大致可以分为3种状态即准备0、运

weixin_37942054的博客 8682

7.1华为OD机试真题 新系统 - 奇偶三数之和 (Java/Py/C/C++/Js/Go)

7.1华为OD机试真题 新系统 - 奇偶三数之和 (Java/Py/C/C++/Js/Go)

算法大师! 444

新手秒变高手:使用一键脚本快速安装OpenClaw并完成初始化配置

一键脚本是一种自动化工具,可以帮助用户快速完成软件的安装和配置过程,无需手动执行繁琐的命令。OpenClaw提供了官方的一键安装脚本,让新手用户也能轻松部署OpenClaw。

一键难忘的博客 358

java小游戏------Flappy Bird(飞翔的小鸟含源码)

链接:https://pan.baidu.com/s/1cZkqGN0gfGPjJM-FDxVUtg。链接:https://pan.baidu.com/s/1YcS3AtbHaY_G8JUOQg58Rg。如上图所示:我们需要绘制背景,小鸟,障碍物,当然也包括游戏开始界面以及死亡界面。(3)绘制障碍物(长柱和别的鸟),并使障碍物移动。(1)创建一个窗口绘制背景,绘制开始页面。(2)游戏界面展示的相关类包 main。(2)绘制一只小鸟能上下移动。(1)游戏入口包 app。(3)工具类包 util。

qq_74241043的博客 2100

基于FPGA的64点fft变换verilog开发

这精度的损失在10bits看来对最后的误差的影响是存在是不可忽略的。此后,在这思想基础上又开发了高基和分裂基等快速算法,随着数字技术的高速发展,1976年出现建立在数论和多项式理论基础上的维诺格勒傅里叶变换算法(WFTA)和素因子傅里叶变换算法。采用这种算法能使计算机计算离散傅里叶变换所需要的乘法次数大为减少,特别是被变换的抽样点数N越多,FFT算法计算量的节省就越显著。采用这种算法能使计算机计算离散傅里叶变换所需要的乘法次数大为减少,特别是被变换的抽样点数N越多,FFT算法计算量的节省就越显著。

FPGA/MATLAB学习教程/源码/项目合作开发 1977

Java小游戏:飞翔的小鸟 【附源码和素材】

飞翔的小鸟(代码源码)

qq_19640035的博客 8754

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

上一篇: 打造私人在线视频播放器,就是这么简单................
下一篇: 模拟飞翔的小鸟android版 文档二
bilichen006
博客等级 码龄12年 93粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值