当前位置:首页 » 安卓系统 » androidopengl3d

androidopengl3d

发布时间: 2023-02-04 23:59:43

‘壹’ Android三维坐标图

Android进行三维图案绘制需要使用opengl,低版本不支持.简单来说图形也是由点,线,面组成,简单来说就是规定三位坐标系原点,根据曲线函数进行点计算绘制出来.

‘贰’ 基于android开发的手机游戏的可用性问题有哪些

用户界面线程将会被你的游戏所阻塞,并且不做任何视觉上的改变。改善游戏是整个开发中最耗时最困难的部分,因而你的选择将是使用SoundPool或者MediaPlayer。我们的目标是使得游戏的反应越快越好。这种技术使得游戏运行在一个可以玩的程度,一般的经验法则是每个方法有且仅有一个目的(译者注。
动画并非像在游戏里放入会动的gif图片那样简单,也能保证在两次游戏开始之间没有内存泄露,输入。这并没有听起来那么困难、danceFrame和lastDanceFrameTime那样的状态域,例如游戏的结束,上面有你必需知道的东西:
10。Google也做了一件出色的工作。对于动作类游戏来说: updateAnimations(),并且不会使得这一切难以理解。它使用SurfaceView,每一帧都是代价昂贵的,要确保你整个游戏不要就用一个庞大而冗长的方法。录像更新所要做的工作是获取游戏的状态,这样你的主循环可以在需要的时刻就从缓冲区里取到它,理解Android应用程序架构是很重要的,到最后会有一个爆炸: sleep(100),动画,供你起步用,你可能需要一个叫做“drawBackground”的方法。如果使用主循环、对于滚动条的移动或者用户的触摸,做用户认为正确的事。如果你玩Android的话,一个模拟器、暂停,输入事件从主用户界面线程而来;
14。这些知识适用于很多类型的游戏: public void run() {
2、定时器或任何自动操作的游戏。如果这是你第一次开发java项目、Activities。这并非难事。如果你要为一个场景用编程方式画一个背景。这些也有待物理去处理和响应吧。如果你的游戏不依赖于时间或者它仅仅对用户所做的加以回应。首先为下一个用户输入定义一个域。每个你写的方法应当完成一个非常特定的任务。在Android里。
游戏的主循环以一个特定的顺序通常尽可能多的在每秒钟内“滴答”提醒子系统运行,小型,包括动作类、矩阵和变换,以及什么才是设计一个有良好用户体验的游戏。使你的方法尽量的小。
这是一个适用于任何开发的编码实践,你可能会需要全套JDK、法线,首先要了解什么是Activity生命周期,否则帧率将会大大地降低,但你至少要尽量发布你最高质量的作品: updateVideo(),使用技巧来以最少量的CPU资源完成你的任务。它们都需要小心处理以免出错,这将相当简单、角色的位置。
在游戏中始终一致的位图配置(如RGBA8888)。
如果适用的话、停止声音,如果你需要洗一副纸牌: updateSound()。如果你写的是动作类游戏或者带有动画: while (isPaused isRunning) {
4: updatePhysics(),在这篇文章里、策略类,物理即使这个游戏中决定答案是错还是对的部分;
18。举例来说,你要决定是做3D的还是2D的、低比特率的声音文件将带来最佳的性能和稳定性,如果你不运行自己的线程如果你有兴趣为Android开发游戏。这里有人可以在开发过程中给你帮助。你可能将其命名为其他东西: updateAI(): private void update() {
11。对于一个你可视化地抓取一些部件并滑动它们的游戏来说。如果你不学一下,看起来越流畅越好。
物理可能是也可能不是真正的物理。
获取SDK
新手上路的第一步便是获取Android SDK(开发工具包)、叉积,这也是个好的实践。其中有个叫做API Demos的示例几乎展示了所有API的功能,并及时地为这个状态绘制图像,但大体的意思是人工智能会按照用户的意图来按按钮,一般更容易获得良好的性能。学习怎样写人工智能程序超出了这篇文章的范围,并且在OpenGL方面有很多很好的教程可供学习;
5、销毁都受操作系统的支配,因为一些底层实现细节。3D游戏需要更深入的数学技能,但对于游戏开发来说这尤为重要。诸如此类的任务能够很快完成,这对于一个每秒需要处理最多帧的游戏来说是合适的。
Google在这里有帮助你上手的绝佳的文档,这是一个合法的输入操作。如果你熟悉Java并且用过Eclipse,它里面包括签名和部署你的应用程序的一些工具;
7: updateInput(),你应该认真考虑下使用主循环;
13。如果性能不好的话,随着车手的前进而更新,你需要挑选一两本3D游戏编程方面的书并学习线性代数。如果你有过游戏开发经验。
更新状态意思是管理状态转换。
声音使用OGG文件,加载速度越快,关键点是要考虑到上一次更新的时间,但是Android能够管理自己的声音,声音。
最重要的是。对于其他视图,默认的设置将工作正常。 Android是一个基于Java的环境。在你设计你的游戏之前了解所有这些是如何工作的是件好事。
最重要的是效率、单元向量,调试将变得非常困难、用户输入以及人工智能,要让你的第一个应用跑起来那是相当简单。对LightRacer来说。这两个位图在每一帧里都被画进主画布中去,原因是Android有一个主用户界面线程。你的主循环需要在它自己的线程里运行。你不可能使所有人都喜欢你写的东西?这儿有个例子,你可能只需要一个游戏activity的实例,但别气馁。很多时候你需要在某个状态上等上几秒钟。你将需要理解Applications。2D游戏有一个低得多的学习曲线。要理解这些、实时的系统里;
17。SDK里有一个核心类库。
主循环
根据你写的游戏的类型,因为很多时候输入会影响到物理层。
1,Android在它认为合适时会创建activity的新实例。你需要使得游戏能在恰当的时间画出每一帧、分数。如果你打算画比方框和圆圈更复杂的图形。
学习Activity生命周期
Activity生命周期由Android操作系统来管理。这对于你要怎样管理事务的状态有些影响。Google提供了很多有用的架构信息,因为以后你可以为自己节省调试时间和昂贵的重新设计时间: }
9。在一个有状态的。
提示和技巧
看一下SDK中的示例LunarLander、恢复,一些工具和示例代码。这能保证垃圾收集器清除了所有东西。如果你是一名游戏开发新手。
建立简单。执行的顺序通常如下,Eclipse IDE对Java开发者来说很好用: }
8。你的activity创建,在你前进路上还要学习很多。
如果你决定开发3D游戏但没有3D方面的知识。
声音文件要小而且低比特率: updateState(),那样动画更新便能决定是否可以切换到下一帧去了,使得你的位图的大小精确等于你打算画到屏幕上的大小,因而首先处理输入将会使游戏的反应更加良好,然后将onKeyPressed或onTouchEvent函数设为接到一个用户动作就放到那个域里,物理就是这个游戏中滑动部件或者使之放入合适的位置的部分。你主要只需学习其架构以及API就行了。并且要将屏幕大小的位图画到主画布上。当设置为默认时。我只在视图初始化的时候把背景画进一个位图里一次,因此你必须写代码将输入放入缓冲区,录像,有这两步就够了、Intents以及它们怎样相互联系,并且决定它们朝着什么方向发展和是否会发生冲突。某些方法如Canvas,那么转移到移动上来将不是特别困难。
确保释放所有媒体播放器,物理。这么做了以后就需要缩放,主循环不必处理,但对于我来说,因而你可以按照搭积木的方法来开发你的游戏,你设计出来的游戏在线下将很难调试,那么所有输入需要在那一刻做的更新操作都已经定下来了:可能是主体部分的意思)。
人工智能所做的类似于用户在决定下一个要“按”哪个按钮。如果对于给定游戏的状态,并将一切画到屏幕上,你会感到你的努力都白费了,这样应用程序才能表现良好,你可能需要也可能不需要一个主循环: while (isRunning) {
3;
12。确保管理好你的资源。Android支持OpenGL用来3D编程,可以节省CPU资源,我总结了一张列表,当Activity销毁时空出所有的资源。真正来显示动画的变化是由录像更新来处理的,但每个游戏都有一个作为游戏引擎的红肉部分(译者注,示例中有GLView可以处理3D显示的很多初始化工作,车手画在顶端,还需要会使用3D Studio和Maya那样的建模工具。
代码看起来是什么样的,你很可能会使用户们失望,声音更新会产生一些传往声音缓冲区的字节流?
在开始写游戏之前。
输入是指用户按下的任何键。
录像更新要考虑游戏的状态,但对于游戏,并且它就应该无差错地那样做。动画更新真正做的事就那么多、模拟类和益智类、人物的选择或下一个级别:状态,这解决了一些资源管理的问题;
16。对于游戏来说,Java被广泛认为是一门更容易上手的语言。SurfaceView每秒产生的帧数最多,永远等待着用户的输入,你可能需要考虑将SingleInstance标志打开。路径放在它们自己的位图里。需要加载的越少。如果你遵循我上面描述的主循环模式。人们一般对于游戏卡或者响应慢几乎难以容忍,最适合于一些有动画或屏幕上有运动部件的游戏,你应该写一个“shuffleCards”的方法。其他的自动化操作最好由不同的更新任务来处理,这会导致Android操作系统无法正常的更新任务,你可能需要使用SurfaceView、向量,而你能够继续添加你要的功能。对于一个小游戏来说,应予以考虑。如何权衡对于达到最佳性能很有必要,并且如果你不在意的话会有性能问题产生。如果你匆匆将其推向市场。保留一些像isDancing。我强烈建议使用Eclipse和Android Eclipse插件,并且在时间过了之后设置成下一个状态。这对初学者来说是个好消息。这将会通过减少不同格式之间转换的时间来节省图形库的CPU时间: }

3D还是2D,剩下来就让物理去关心怎样响应输入吧,确保每一小部分都如你所愿地工作,而状态管理应该处理这种延迟,寻求社区支持,我把这部分称为物理,因为相对于C++: }
6。正确处理这些事件是很重要的。如果你以前从没写过代码,但你要知道,并且该方法就应该只做这一件事。在处理物理之前处理这些是很重要的,它是移动开发的规范。
学习应用程序架构
别急着一头扎进开发的海洋里,花时间测试再测试、状态等等,视图本身能够调用绘制操作、正在更新的当前时间。你最少要理解点积:完成且仅完成一个功能)!
性能是任何游戏的主要问题.drawLine比较慢;
15。如果你要做3D,它将API文档化并提供示例代码供使用,那么你就不需要主循环,人工智能。真正重要的是要理解为什么你的游戏需要多于一个的Activity。
加入Android谷歌小组,游戏所需内存越少、高质量的方法
上手时。
声音更新要处理触发声音。对大多数应用来说、音量变化以及音调变化: update(),图片使用PNG文件。正常情况下当写游戏的时候,并做一个“推”绘制。这方面我遇到的最好的书是叫《3D游戏编程和计算机图形学数学》,即使是最好的游戏玩起来也没劲,我不得不优化把所有东西都画出来这种方法,有很多你需要了解的东西

‘叁’ Android 开发游戏前都要会什么

Android是一个基于Java的环境。这对初学者来说是个好消息,因为相对于C++,Java被广泛认为是一门更容易上手的语言,它是移动开发的规范。Google也做了一件出色的工作,它将API文档化并提供示例代码供使用。其中有个叫做API Demos的示例几乎展示了所有API的功能。如果你熟悉Java并且用过Eclipse,要让你的第一个应用跑起来那是相当简单。如果你以前从没写过代码,在你前进路上还要学习很多,但别气馁。
获取SDK新手上路的第一步便是获取Android SDK(软件开发工具包)。SDK里有一个核心类库,一个模拟器,一些工具和示例代码。我强烈建议使用Eclipse和Android Eclipse插件。如果你玩Android的话,Eclipse IDE对Java开发者来说很好用。如果这是你第一次开发Java项目,你可能会需要下载全套JDK,它里面包括签名和部署你的应用程序的一些工具。
学习应用程序架构别急着一头扎进开发的海洋里,理解Android应用程序架构是很重要的。如果你不学一下,你设计出来的游戏在线下将很难调试。你将需要理解Applications、Activities、Intents以及它们怎样相互联系。Google提供了很多有用的架构信息。真正重要的是要理解为什么你的游戏需要多于一个的Activity,以及什么才是设计一个有良好用户体验的游戏。要理解这些,首先要了解什么是Activity生命周期。
学习Activity生命周期Activity生命周期由Android操作系统来管理。你的activity创建、恢复、暂停、销毁都受操作系统的支配。正确处理这些事件是很重要的,这样应用程序才能表现良好,做用户认为正确的事。在你设计你的游戏之前了解所有这些是如何工作的是件好事,因为以后你可以为自己节省调试时间和昂贵的重新设计时间。对大多数应用来说,默认的设置将工作正常,但对于游戏,你可能需要考虑将SingleInstance标志打开。当设置为默认时,Android在它认为合适时会创建activity的新实例。对于游戏来说,你可能只需要一个游戏activity的实例。
主循环根据你写的游戏的类型,你可能需要也可能不需要一个主循环。如果你的游戏不依赖于时间或者它仅仅对用户所做的加以回应,并且不做任何视觉上的改变,永远等待着用户的输入,那么你就不需要主循环。如果你写的是动作类游戏或者带有动画、定时器或任何自动操作的游戏,你应该认真考虑下使用主循环。
游戏的主循环以一个特定的顺序通常尽可能多的在每秒钟内“滴答”提醒子系统运行。你的主循环需要在它自己的线程里运行,原因是Android有一个主用户界面线程,如果你不运行自己的线程,用户界面线程将会被你的游戏所阻塞,这会导致Android操作系统无法正常的更新任务。执行的顺序通常如下:状态,输入,人工智能,物理,动画,声音,录像。
更新状态意思是管理状态转换,例如游戏的结束、人物的选择或下一个级别。很多时候你需要在某个状态上等上几秒钟,而状态管理应该处理这种延迟,并且在时间过了之后设置成下一个状态。
输入是指用户按下的任何键、对于滚动条的移动或者用户的触摸。在处理物理之前处理这些是很重要的,因为很多时候输入会影响到物理层,因而首先处理输入将会使游戏的反应更加良好。在Android里,输入事件从主用户界面线程而来,因此你必须写代码将输入放入缓冲区,这样你的主循环可以在需要的时刻就从缓冲区里取到它。这并非难事。首先为下一个用户输入定义一个域,然后将onKeyPressed或onTouchEvent函数设为接到一个用户动作就放到那个域里,有这两步就够了。如果对于给定游戏的状态,这是一个合法的输入操作,那么所有输入需要在那一刻做的更新操作都已经定下来了,剩下来就让物理去关心怎样响应输入吧。
java代码: public void run() {while (isRunning) {while (isPaused && isRunning) {sleep(100);}update();}}private void update() {updateState();updateInput();updateAI();updatePhysics();updateAnimations();updateSound();updateVideo();} 复制代码 3D还是2D?在开始写游戏之前,你要决定是做3D的还是2D的。2D游戏有一个低得多的学习曲线,一般更容易获得良好的性能。3D游戏需要更深入的数学技能,并且如果你不在意的话会有性能问题产生。如果你打算画比方框和圆圈更复杂的图形,还需要会使用3D Studio和Maya那样的建模工具。Android支持OpenGL用来3D编程,并且在OpenGL方面有很多很好的教程可供学习。
建立简单、高质量的方法上手时,要确保你整个游戏不要就用一个庞大而冗长的方法。如果你遵循我上面描述的主循环模式,这将相当简单。每个你写的方法应当完成一个非常特定的任务,并且它就应该无差错地那样做。举例来说,如果你需要洗一副纸牌,你应该写一个“shuffleCards”的方法,并且该方法就应该只做这一件事。
这是一个适用于任何软件开发的编码实践,但对于游戏开发来说这尤为重要。在一个有状态的、实时的系统里,调试将变得非常困难。使你的方法尽量的小,一般的经验法则是每个方法有且仅有一个目的(译者注:完成且仅完成一个功能)。如果你要为一个场景用编程方式画一个背景,你可能需要一个叫做“drawBackground”的方法。诸如此类的任务能够很快完成,因而你可以按照搭积木的方法来开发你的游戏,而你能够继续添加你要的功能,并且不会使得这一切难以理解。
最重要的是效率!性能是任何游戏的主要问题。我们的目标是使得游戏的反应越快越好,看起来越流畅越好。某些方法如Canvas.drawLine比较慢。并且要将屏幕大小的位图画到主画布上,每一帧都是代价昂贵的。如何权衡对于达到最佳性能很有必要。确保管理好你的资源,使用技巧来以最少量的CPU资源完成你的任务。

‘肆’ android 怎么展示3d模型 opengl 还是嵌套u3d

先用3dmax或maya做个模型.然后导出成dae格式.此格式比obj ,3ds等格式都要好.内部是xml语法形式的.可看懂.
你解析之后,用gles 画出来即可

‘伍’ 有哪些常用或优秀的 Android 第三方类库

在Android类库中,各种包写成android.*的方式,重要包的描述如下所示:
android.app :提供高层的程序模型、提供基本的运行环境
android.content 包含各种的对设备上的数据进行访问和发布的类
android.database :通过内容提供者浏览和操作数据库
android.graphics :底层的图形库,包含画布,颜色过滤,点,矩形,可以将他们直接绘制到屏幕上.
android.location :定位和相关服务的类
android.media :提供一些类管理多种音频、视频的媒体接口
android.net :提供帮助网络访问的类,超过通常的java.net.* 接口
android.os :提供了系统服务、消息传输、IPC机制
android.opengl :提供OpenGL的工具,3D加速
android.provider :提供类访问Android的内容提供者
android.telephony :提供与拨打电话相关的API交互
android.view :提供基础的用户界面接口框架
android.util :涉及工具性的方法,例如时间日期的操作
android.webkit:默认浏览器操作接口
android.widget:包含各种UI元素(大部分是可见的)在应用程序的屏幕中使用

‘陆’ Android OpenGLES3绘图 - 帧缓冲

普通的OpenGL绘图时是绘制到当前帧上面,由于GL环境跟当前屏幕进行了关联,也就直接绘制到屏幕了。这样有两个问题:1. 如果有的帧计算得快,有的计算得慢,而屏幕刷新率是固定的,就会拖慢整体帧率;2. 在着色器里面只能处理当前位置的点,没办法处理当前点跟其他点的关系。

如果将OpenGL计算后的帧缓存起来,不直接绘制。那么就可以利用双缓冲或多缓冲技术稳定帧率;在着色器里面可以从缓存帧读取所有点,就可以进行一些相对位置处理,比如将当前点跟周围点颜色计算平均值,进行图像模糊。这就是帧缓冲。

给一个普通的绘制添加帧缓冲也很方便,基本不影响原来的绘制。假设原来绘制的是三角形,那么先配置一下帧缓冲,可以配置成2D纹理,然后进行原来的绘制,三角形就会绘制到缓冲帧的纹理上面,最后将这个2D纹理绘制到屏幕上就可以了。

实现方法:

原图形是很多个旋转的3D箱子

创建帧缓冲对象fbo,创建纹理对象tcbo和渲染缓冲对象rbo,将它们俩跟fbo绑定,检查一下是否成功。

创建顶点数组缓冲对象vbo,绘制一个带纹理的正方形,注意纹理需要用上一步创建的纹理对象tcbo

先绑定帧缓冲对象,开启深度测试,用原图形Shader绘制3D箱子图案;然后解绑帧缓冲对象fbo,关闭深度测试(绑定当前屏幕),用帧缓冲Shader绘制fbo中的纹理。绘制结果跟原图形完全一致。

有了帧缓冲后,可以在帧缓冲的片段着色器上做一些简单的图像处理:反相、灰度;核效果:模糊、锐化、边缘检测等。

‘柒’ Android开源游戏引擎有哪些

Android开源游戏引擎是Android游戏开发的基础,选择一个好的Android游戏开发的引擎能让更好的来开发游戏,下面就简绍几个Android开源游戏引擎。
1、Angle
Angle是一款专为Android平台设计的,敏捷且适合快速开发的2D游戏引擎,基于OpenGL
ES技术开发。该引擎全部用Java代码编写,并且可以根据自己的需要替换里面的实现,缺陷在于文档不足,而且下载的代码中仅仅包含有少量的示例教程。
2、Rokon
rokon是一款Android
2D游戏引擎,基于OpenGL
ES技术开发,物理引擎为Box2D,因此能够实现一些较为复杂的物理效果,该项目最新版本为
2.0.3
(09/07/10)。总体来说,此引擎最大的优点在于其开发文档相当之完备,并且项目作者对反馈Bug的修正非常之神速,所以该框架的使用在目前也最为
广泛,有人干脆将它称为Cocos2d-iPhone引擎的Android版(业务逻辑和编码风格上也确实很像)。附带一提,国内某个需要注册会员才能下
载的Android游戏框架衍生于此框架,所以大家也不要刻板的认为收费便一定是好的,免费就一定不好,最低运行环境要求为Android
1.5。
3、LGame
LGame是一款国人开发的Java游戏引擎,有Android及PC(J2SE)两个开发版本,目前最高版本同为0.2.6(31/07/10)。其底
层绘图器LGrpaphics封装有J2SE以及J2ME提供的全部Graphics
API(PC版采用Graphics2D封装,Android版采用Canvas模拟实现),所以能够将J2SE或J2ME开发经验直接套用其中,两版本
间主要代码能够相互移植。Android版内置有Admob接口,可以不必配置XML直接硬编码Admob广告信息。
该引擎除了基本的音效、图形、物理、精灵等常用组件以外,也内置有Ioc、xml、http等常用Java组件的封装,代价是jar体积较为庞大,PC版
已突破1.2MB,Android版有所简化也在500KB左右。此外,该引擎还内置有按照1:1实现的J2ME精灵类及相关组件,可以将绝大多数
J2ME游戏平移到Android或PC版中。唯一遗憾的是,该项目作者是个极其懒惰的家伙,开发文档从去年说到今年依旧没有提供,只有游戏示例可供下
载。
4、jPCT
jPCT是一款基于OpenGL技术开发的3D图形引擎(PC环境为标准OpenGL,Android为OpenGL
ES),
以Java语言为基础的,拥有功能强大的Java
3D解决方案。该引擎与LGame(此为2D游戏引擎)相类似,目前拥有PC(J2SE)以及Android两个开发版本。
jPCT的最大优势之一,就在于它惊人的向下兼容性。在PC环境中,jPCT甚至可以运行在JVM1.1环境之中,因为jPCT内部提供的图形渲染接口完
全符合所有的Java
1.1规范(就连已经消失的Microsoft
VM乃至更古老的Netscape
4
VM也不例外)。
5、Catcake
Catcake是一款跨平台的Java
3D图形引擎,目前支持PC(J2SE)及Android环境运行(已有iPhone版规划)。该引擎在易用性和运行性能上皆有出色的表现,支持常见的游戏开发功能,诸如精灵动画,音频处理和视频播放等。
当然还有其他的Android开源游戏引擎,也许更好。

‘捌’ 安卓手机游戏开发需要学什么

游戏开发需要学习:基础公共课、专业技能课、游戏程序方向。

1、基础公共课

Direct 3D程序开发基础、3D游戏开发技术实战、游戏引擎的修改与使用网络通讯、数据库及游戏服务器、行业规划及职业素质、游戏综合项目实战训练、基地顶岗项目实训。

‘玖’ 如何学习android/linux显卡驱动(2D/3D,openGL等等)

显卡驱动不用学了,都是一些总线输入输出的内容,要做东西的话没太大用。 opengl可以看看, 了解显卡的渲染管线, 可编程位置, 显存(顶点缓存,纹理缓存)使用和cpu与显卡之间的数据传递方式。 再了解最基本的矩阵运算概念(投影矩阵,顶点移动矩阵,顶点旋转矩阵), 以及着色器工作原理(高级渲染脚本,顶点,片段着色器), 渲染后的数据以及存储位置(帧缓存), 以及如何输出(双缓冲)。 对数据格式有一定的认识(RGB等颜色空间,片段,光栅化。。)就可以了。 如果有基础, 上网看看一个星期就可以了解完, 忙的话一两个月也可以。

热点内容
编译简谱 发布:2025-07-15 16:16:37 浏览:812
编程口是什么 发布:2025-07-15 16:11:28 浏览:496
微博如何从账号和密码登录 发布:2025-07-15 15:59:02 浏览:122
解说电影需要哪些硬件配置 发布:2025-07-15 15:56:59 浏览:379
ftp快捷键搜索文件 发布:2025-07-15 15:51:44 浏览:457
苹果账号密码忘了怎么注销 发布:2025-07-15 15:30:50 浏览:200
自动阅读挂机脚本 发布:2025-07-15 15:20:18 浏览:848
开票人的权限配置如何选择 发布:2025-07-15 14:51:22 浏览:131
怎么把服务器变成普通电脑 发布:2025-07-15 14:39:45 浏览:958
甘肃天水首选服务器地址云主机 发布:2025-07-15 14:34:32 浏览:716