html5&javascript
文章平均质量分 77
lufy
从事web开发和游戏开发多年,精通html5和flash等技术。html5开源游戏引擎lufylegend.js的开发者,著有HTML5 Canvas游戏开发实战一书,利用html5和flash等技术独立开发了大型网页游戏アイドルバトルflash游戏ポイガチャ多平台游戏三国记系列,以及数十款手机小游戏,游戏开发经验十分丰富。
展开
-
html5游戏开发-愤怒的小鸟-开源讲座(三)-碰撞产生的冲力
在前面已经实现了利用外力将小鸟弹飞出去,并且实现了镜头的跟随。本次来研究一下小鸟与其他物体之间发生碰撞时的冲力,以及由碰撞而使物体发生变形,进而消失,下面是前两讲的链接,看本篇教程之前请朋友们最好先了解一下。html5游戏开发-愤怒的小鸟-开源讲座(一)-跳入弹出的小鸟http://blog.csdn.net/lufy_legend/article/details/7765599html5游戏开发原创 2012-07-31 07:40:01 · 22823 阅读 · 74 评论 -
HTML5高级编程之像素处理及粒子效果
HTML5中的像素处理,需要用到getImageData和putImageData两个函数,先用getImageData复制canvas画布中的像素数据,然后对获取的像素数据进行处理,最后再通过putImageData将处理完的数据粘贴到canvas画布。我们不妨把中间处理像素的过程称作像素的批处理,由于像素的复制和粘贴是两个比较费时的过程,为了更高效的对像素进行处理,我们应该在一次批处理过程中尽原创 2014-03-10 06:33:00 · 20167 阅读 · 15 评论 -
HTML5各引擎显示效率比较
现在越来越多的人开始尝试使用HTML5开发,HTML5的引擎也逐渐增多,开发者到底应该选择一款什么样的引擎呢?这一次我来对比一下几个我个人认为还不错的引擎的效率。本次参加对比的引擎:1. createJS,2. cocos2d-HTML5,3. enchant.js,4. lufylegend.js原创 2014-02-09 14:15:37 · 36420 阅读 · 44 评论 -
《游戏脚本的设计与开发》-(RPG部分)3.1 RPG地图到底怎么做?
我之前也写过一个短篇系列《零基础开发RPG游戏开源讲座》,介绍的也比较简单,这次我会更深入也更具体的介绍一下RPG游戏的开发过程。话说好久没有更新博客了,其实这段时间主要是工作忙,没时间。那又是什么刺激了我呢,为什么又有时间了呢?原因有两个,第一个,前两天看到一款战棋网游《三国志を抱く》,这款游戏和我在家偷摸儿设想的游戏竟然出奇的相同,原来我一直想要做的事儿,在我还在抱怨没有时间的时候,已经被其他人做了,这着实让人感慨,也极其让人不爽。这也让我觉得,我再不做点儿什么的话,自己可能会遇到更不爽的事儿。有原创 2013-12-19 16:30:11 · 18524 阅读 · 10 评论 -
《游戏脚本的设计与开发》-(战棋部分)2.3 战场上的寻路和移动
上次已经让我军,友军和敌军都出现在了战场上,本章来说说如何让一个部队在战场上进行移动。在战棋游戏中,我军回合行动的时候,点击我军的某一个部队,会出现选择列表,选择【部队移动】一项后,会出现该部队可能移动的范围,然后点击范围内的某一位置,则部队就会向着这个位置移动。在这一过程中涉及到两个算法,一个是部队移动范围的搜索,另一个就是部队移动时的寻路算法。复杂指数来说,寻路算法相对复杂一些,之前研究AS3的时候,曾经写过一篇A*寻路的分析文章<a href="http://blog.csdn.net/lufy_le原创 2013-07-22 06:56:01 · 19090 阅读 · 4 评论 -
《游戏脚本的设计与开发》-1.1 读取和解析一个脚本文件
上一篇《游戏脚本的设计与开发》-序中我介绍了游戏脚本的基本概念和准备工作,本篇来说说具体如何解析一个脚本所谓解析脚本,就是按照自己定义的语法,将每一个脚本命令还原成不同的代码逻辑进行执行,比如,我规定绘制一个矩形的脚本draw rect和一个绘制圆的脚本draw arc那么,当我读取到了字符串“draw rect”的时候,就在屏幕上画一个矩形,读取到了字符串“draw arc”的时候,就在屏幕上画原创 2013-05-13 11:32:29 · 20648 阅读 · 23 评论 -
《游戏脚本的设计与开发》-(战棋部分)2.4 物理攻击
终于到了攻击部分了,战棋游戏中的攻击,主要分为物理攻击和法术攻击,本章就先从物理攻击讲起。物理攻击又分为普通攻击,连击(双击),以及致命攻击,再复杂一点的还有其他特殊攻击,比如我的《三国记-乱世群雄》游戏里面,张飞的三次攻击,关羽的多人攻击等特殊的技能攻击。我依然从简单开始,先来看看如何来实现一下普通攻击,攻击的过程是,1,A对B进行攻击。2,B受伤或者档格。3,如果A在B的攻击范围之内,则B会进行一次反击。4,A受伤或者档格。原创 2013-08-12 10:32:59 · 14328 阅读 · 24 评论 -
《游戏脚本的设计与开发》-1.4 图片的读取显示
本章来实现一下如何用脚本来读取一张图片,将其显示到画面中,并且对图片进行一些缓动变换等操作。本章预备实现一下几个脚本/*游戏脚本的设计与开发 第四章*///读取图片数据Load.img(backdata,lufy_legend.jpg);显示图片Img.add(-,backimg01,backdata,0,0,100,100,1);对图片进行缓动操作Img.transition(b原创 2013-06-04 10:03:06 · 7636 阅读 · 2 评论 -
《游戏脚本的设计与开发》-1.3 基础语法(注释,变量,函数,条件语句)
本章来解析一些无论在任何语言中都必不可少的脚本语法,分别是注释,变量,函数,条件语句,脚本格式如下。/*游戏脚本的设计与开发 第三章*///设定变量num的值为5Var.set(num,5);//条件语句脚本测试if(@num>10); Var.set(name,lufy);elseif(@num>4); if(@num==5); Var.set(name,你好); els原创 2013-05-27 06:17:02 · 10908 阅读 · 8 评论 -
HTML5开发中使用MVC模式
很多人一定会说,js开发根本不需要什么MVC,用了就是给自己找麻烦。在这里,我不去讨论需不需要的问题,只是我个人感觉这次的开发使用了MVC模式之后,代码各个模块确实一目了然,维护和扩展都相对方便了许多,很适合大中型的开发,当然对于小程序而言,也确实没有使用MVC的必要。现在我将这个框架公开,并在这里简单说明一下它的用法,这个框架是我在很短的时间内完成的,所以一定存在很多不完善的地方,如果你有更好的想法,也欢迎提出来一起讨论。原创 2013-11-27 07:41:49 · 16425 阅读 · 5 评论 -
HTML5超帅动画制作-LTweenLite的妙用
lufylegend.js是一个开源的HTML5游戏引擎,在游戏中往往会有各种的动画,这些动画有些是flash文件,有些是视频文件,本次就来利用lufylegend制作一个帅气的游戏动画。原创 2013-10-14 10:18:51 · 24020 阅读 · 22 评论 -
HTML5开源游戏引擎lufylegend1.8.0发布
lufylegend是一个HTML5开源引擎, 它实现了利用仿ActionScript3.0的语法进行HTML5的开发,包含了LSprite,LBitmapData,LBitmap,LLoader,LURLLoader,LTextField,LEvent等多个AS开发人员熟悉的类, 支持Google Chrome,Firefox,Opera,IE9,IOS,Android等多种热门环境。利用lufylegend可以轻松的使用面向对象编程,并且可以配合Box2dWeb制作物理游戏, 另外它还内置了LTween原创 2013-10-09 07:51:57 · 13337 阅读 · 64 评论 -
html5游戏开发-零基础开发RPG游戏-开源讲座(一)
因为上一篇雷电的开发中,有朋友反应不太理解,本篇将以零基础的视点,来讲解如何开发一款RPG游戏。在游戏的世界里,我们可以看到各种地图,各种游戏人物,看到人物在地图上行走,对话等,无论是地图还是人物,其实都是图片的处理与显示,把不同的图片显示到屏幕上,我们就看到不同的游戏界面,要想让这些图片同时显示到界面上,我们就需要处理好层次,让他们来分层显示,我们可以想象,如果游戏人物显示在地图的下层的话,显然原创 2011-12-13 13:49:21 · 45913 阅读 · 90 评论 -
html5游戏开发-零基础开发RPG游戏-开源讲座(四)-游戏脚本化&地图跳转
首先,本篇文章是零基础开发RPG游戏-开源讲座系列文章的第四篇,来实现游戏的脚本化,和利用游戏脚本实现地图场景的切换,离上次更新貌似很长时间了,你在看下面的文字之前,需要先了解前三篇在下啰嗦了些什么东东。html5游戏开发-零基础开发RPG游戏-开源讲座(一)http://blog.csdn.net/lufy_legend/article/details/7063316html5游戏开发-零基础开原创 2012-01-22 03:50:00 · 17215 阅读 · 30 评论 -
html5游戏开发-零基础开发RPG游戏-开源讲座(二)-跑起来吧英雄
上一篇中,已经详细讲解了,如何添加地图,以及添加了一个游戏人物,现在我们来添加控制事件,让这个小英雄走动起来了解上一篇内容请看这里html5游戏开发-零基础开发RPG游戏-开源讲座(一)http://blog.csdn.net/lufy_legend/article/details/7063316我们已经给游戏人物建立了一个Character类,现在先来在类里加入Character.prototy原创 2011-12-16 10:25:59 · 12683 阅读 · 9 评论 -
《游戏脚本的设计与开发》-(RPG部分)3.7 战斗系统之自动战斗(一)
所谓自动战斗系统就是战斗从开始到结束无需任何操作,其实自动战斗的胜负结果在战斗开始的时候已经决定了,战斗的画面只是还用来显示或者说回放这一战斗的过程,这种战斗方式开发成本较低,而且因为不用长时间的操作,很适合上班族们玩,所以这种战斗方式被广泛应用于页游中,比如《神仙道》,比如《三十六计》,再比如《修仙三国》。对于单机游戏来说,这种方式是不太可取的,但是我这个脚本最终也并不一定用来做单机,而且有朋友急着要一个战斗系统,我就先在这里简单的实现一下这种战斗,而传统的可操作的RPG回合制战斗方式我后面会花大功夫来讲原创 2014-04-15 10:56:02 · 17212 阅读 · 21 评论 -
《游戏脚本的设计与开发》-(RPG部分)3.6 队员列表和人物属性
队员列表的作用就是保存我方能够参战的人员的信息,简单来说一个数组就可以完成。但是我们需要考虑,这个数组里需要保存哪些信息,对于早期简单的RPG游戏来说,比如《勇者斗恶龙》,《吞食天地》等,每个人的相应等级的能力是固定的,所以对于这些游戏来说,只需要保存人物的ID和等级就足够了。但是现在游戏都讲究多样化,如果还这样做,恐怕就该被吐槽了。当然,不怕被拍砖的话,你可以说,我们是资深的剧情派,只要剧情好,其他的都是浮云。我的脑袋已经是扁的了,不能再被拍了,所以我希望这个功能可以相对的容易扩展一些,能够满足我后面的一原创 2014-03-31 13:08:39 · 15081 阅读 · 16 评论 -
html5游戏开发-愤怒的小鸟-开源讲座(二)-跟随小鸟的镜头
上一讲中介绍了如何让小鸟旋转跳上弹弓,以及利用外部力使小鸟弹飞出去,但是如果不做任何处理的话,小鸟就这么直冲冲的飞出屏幕了,本次我们就要让镜头时刻跟随小鸟来移动。下面是上一讲的连接,没有看过上一讲的朋友们请先了解一下。html5游戏开发-愤怒的小鸟-开源讲座(一)-跳入弹出的小鸟http://blog.csdn.net/lufy_legend/article/details/7765599关于如何原创 2012-07-25 08:27:41 · 16733 阅读 · 27 评论 -
html5游戏开发-愤怒的小鸟-开源讲座(一)-跳入弹出的小鸟
愤怒的小鸟是一款人气火爆的益智游戏,现在我试着用lufylegend库件和Box2dWeb物理引擎来看看在html5中如何制作此类经典的物理游戏。准备工作一首先,你需要下载lufylegend库件1.4.1版http://blog.csdn.net/lufy_legend/article/details/7751425box2dweb你可以到这里下载http://code.google.com/p原创 2012-07-23 10:27:16 · 35340 阅读 · 93 评论 -
[html5游戏开发]经典的推箱子
开言:lufylegend.js引擎已经更新到1.6以上了,虽然我陆陆续续发布了一些教程,也提供了一些简单的游戏示例,但是一直以来也没有制作几款完整的作品来,实在也是自己一个人时间太有限了,接下来的时间,我会尽可能的使用lufylegend.js引擎开发几款完整的作品,来增加一下这个引擎的说服力,希望喜欢html5,喜欢游戏开发的朋友多提些意见。这一次先来看一个经典的推箱子游戏,相信大家也都知道这原创 2013-02-25 07:20:22 · 25069 阅读 · 34 评论 -
【HTML5】3D模型--百行代码实现旋转立体魔方
最近研究魔方的玩法,就突然想用HMTL5写一个魔方的模型,由于魔方是一个3D的立方体,这次就试着用HTML5写了一个简单的3D模型。下面是测试链接和预览画面。http://lufy.netne.net/lufylegend-js/lufylegend-1.4/Rubik/index.html制作流程首先你需要下载html5开源库件lufylegend-1.4.0http://blog.csdn.n原创 2012-06-12 01:42:35 · 36922 阅读 · 26 评论 -
HTML5游戏开发开源库件lufylegend1.4.0发布,新增物理引擎Box2dWeb封装和缓动类TweenLite
一,lufylegend.js是什么?lufylegend是一个HTML5开源引擎, 它实现了利用仿ActionScript3.0的语法进行HTML5的开发,包含了LSprite,LBitmapData,LBitmap,LLoader,LURLLoader,LTextField,LEvent等多个AS开发人员熟悉的类, 支持Google Chrome,Firefox,Opera,IE9,IOS,A原创 2012-06-08 12:53:05 · 14762 阅读 · 8 评论 -
[html5游戏开发]数独游戏-完整算法-开源讲座
开言:本次讲一下数独游戏的开发,数独游戏是一个填数字的游戏,在一个9x9的方格内,这个9x9的大格子又可以分为9个3x3的小的九宫格,在这些格子内填写上1至9的数字,使得每一行,每一列,并且每个小的九宫格内的数字都不重复,游戏玩法简单,数字组合千变万化,所以玩起来特别有意思。在中国数独游戏似乎没那么流行,但是在日本这个游戏非常受欢迎,在通勤的电车上,经常能看到一些人一个手拿着一本数独游戏的书,另一原创 2013-03-10 07:43:49 · 25636 阅读 · 31 评论 -
《游戏脚本的设计与开发》-目录&序
简单说,游戏脚本就是依据一定的格式编写的可执行文件,游戏可以通过脚本中自定义的语句来执行相应的逻辑。举个例子,舞蹈演员随着音乐翩翩起舞,其实音乐在这里就担当了脚本的角色,音乐里记录了每一个舞蹈动作,舞蹈演员根据自己的专业知识,将这些音乐转换为优美的舞姿。游戏也一样,游戏脚本里记录了游戏的控制语句,游戏引擎将这些控制语句进行解析,转换为生动的游戏画面。原创 2013-05-06 09:01:03 · 72127 阅读 · 44 评论 -
《游戏脚本的设计与开发》-(RPG部分)3.8 通过脚本来自由控制游戏(一)
一个RPG游戏中会触发各种各样的剧情,让某个人物的动作改变,或者让某个人移动到另一处,或者让某个人物从战场上消失,或者会播放一段动画,或者会切换游戏场景,等等吧,这些都要通过脚本来动态的控制。我在序章中就已经说了,一个优秀的游戏脚本,通常能控制游戏中的一切。本次先来实现一下几个游戏指令,以后会再进行扩展。・人物角色按照绝对坐标进行移动・人物角色以自己为参照物,按照相对坐标进行移动・人物角色以指定人物为参照物,按照相对坐标进行移动・人物方向和动作的改变(等待动作结束)・人物方向和动作的改变(不等待原创 2014-09-02 21:31:01 · 18660 阅读 · 10 评论 -
[WebGL入门]一,浏览器的准备
浏览器的支持情况,推荐使用Chrome,其他注意点,总结翻译 2014-07-30 06:26:20 · 19059 阅读 · 6 评论 -
《游戏脚本的设计与开发》-第一章总结 文字脚本的功能扩展和一个游戏测试
脚本系列文章写了好几篇了,大家可能都不清楚这些脚本有什么用,游戏中如何能应用到这些东西。当然,目前所介绍的内容还只是个简单的开头,说到做游戏还远远不够。不过,本次就使用前几章所介绍的内容,先来尝试一下如何使用脚本来制作一款简单的游戏(其实也算不上游戏了)。打字机效果对话在游戏中是很常见的,在开始本章的内容之前,先来扩展一下ScriptText类,加入一下三个标签,来控制打字机效果显示文字。/*游原创 2013-06-24 12:14:21 · 10349 阅读 · 16 评论 -
《游戏脚本的设计与开发》-1.5 显示层,绘图
我不止一次在文章中说过游戏分层的重要性,处理好游戏显示层的划分和这些显示层的顺序,就可以完美控制游戏中各元素的显示和遮挡,本章来使用脚本来实现游戏显示层的划分,并且在显示层上绘制各种图形。文章中要实现的几个脚本如下。/*游戏脚本的设计与开发 第五章*///添加显示层Layer.add(-,layer01,100,100);//清空显示层Layer.clear(layer01);//移原创 2013-06-10 06:53:55 · 6570 阅读 · 2 评论 -
《游戏脚本的设计与开发》-(RPG部分)3.2 地图遮挡和人物行走
上一节中已经介绍了RPG游戏中地图怎么实现,在RPG游戏的地图中通常有各种遮挡,比如人物站在房屋的后面的时候,房子应该遮挡住人物,这就涉及到各种建筑物和人物的排序显示。另外,上一节中我为了测试地图,已经添加了一个简单的人物类Character,这个类是我从其他游戏中拷贝过来的,本次除了介绍地图上的遮挡之外,也会详细介绍一下一个人物类的具体实现方法,包括它的动作改变,方向变换以及行走。原创 2014-01-02 05:54:02 · 22056 阅读 · 16 评论 -
《游戏脚本的设计与开发》-(RPG部分)3.5 游戏背包和任务系统
背包系统在游戏中是必不可少的,在游戏中,所有获得的物品都会储存在背包里面。背包的种类,我一般将它分成两大类,一种是类似于《吞食天地》的“个人背包”,在游戏中每个人物都有一个背包,每个人的背包都互不影响,并且每个人只能使用自己背包中的物品。另一种是“集体背包”,游戏中所有己方的人物都共用一个背包,大多数游戏都采用这种形势。下面我们就来实现一下“集体背包”。原创 2014-03-24 11:29:08 · 40558 阅读 · 29 评论 -
《游戏脚本的设计与开发》-(RPG部分)3.4 地图跳转
地图跳转,顾名思义,就是从一张地图跳转到另一张地图(这不是废话嘛),体现在游戏程序中,就是当人物走到了某一个坐标区域,或者在游戏中触发了某事件之后,游戏程序将当前地图和地图上的所有东西清除,简单说就是清空画面,然后再加载另一张地图并显示。我们把游戏中事件的触发归类到任务系统中,本次来实现人物移动到某个坐标区域后的地图跳转,要实现这一过程,大约是下面的四个步骤:1,地图跳转的坐标区域的设置。2,人物移动时,与地图上所设置的坐标区域的判定。3,画面清空。4,新地图加载。原创 2014-03-16 12:40:33 · 8780 阅读 · 29 评论 -
《游戏脚本的设计与开发》-(RPG部分)3.3 加入多个人物以及对话实现
上一节中 给地图加入了遮挡功能,尝试着加入了一个可以控制的测试人物,并且实现了人物行走时的各个动作变换的控制。本节中接下来要做的事情就是把之前的工作全部脚本化,并且使用游戏脚本加入多个人物角色。另外,一个RPG游戏怎么能够没有对话呢,本节中通过点击地图上的人物,来实现游戏中的对话功能。文章中贴出的只是部分主要的代码,你在看的时候,有些代码可能会不理解,这个不要紧,最后我会放出完整源码的下载。原创 2014-01-12 16:36:59 · 10006 阅读 · 9 评论 -
html5游戏开发-弹幕+仿雷电小游戏demo
本游戏使用的是html5的canvas,运行游戏需要浏览器支持html5。本篇文章详细讲解如何用html5来开发一款射击游戏,雷电可以说是射击游戏中的经典,下面就来模仿一下。先看一下游戏截图演示地址http://fsanguo.comoj.com/html5/barrage2/index.html游戏开发,需要用到开源引擎:lufylegend.jslufylegend.js引擎下载地址http:原创 2011-12-01 14:03:29 · 22714 阅读 · 37 评论 -
HTML5高级编程之图形扭曲及其应用一(原理篇)
HTML5中的几种变形HTML5中的变形,共有以下几种方法scale() 缩放rotate() 旋转translate() 平移transform() 矩阵变形setTransform() 重设矩阵这几个方法,对图片一共能完成下面几种处理但是,如果要实现下面这种不规则的变形,就不行了那咱们一步步,先来看HTML5的这几个方法。1,缩放方法如下var c=document.getEleme原创 2012-10-18 10:25:26 · 17100 阅读 · 16 评论 -
HTML5开源游戏引擎lufylegend1.5.0发布
说明lufylegend1.5.0版终于发布了,本来打算再完善一下才发布的,但是最近实在太忙了,1.5.0版拖了又拖,所以决定先发布,等继续完善后再发布1.5.1版,API也相对完善了一下,并加入到了下载包中,原谅偶复制粘贴......lufylegend.js库件的下载及在线API文档请点击下面链接http://lufylegend.com/lufylegend一,1.5.0版更新内容1,将1.原创 2012-10-10 12:25:05 · 19859 阅读 · 53 评论 -
HTML5游戏开发开源库件lufylegend1.3.1发布
这次更新,其实也没加什么太多的内容,主要是为了方便使用,将库件重新封装成了一个文件,大家使用时只需要把lufylegend.js文件引入即可。一,lufylegend.js是什么?lufylegend.js是个javascript库,它的前身是LegendForHtml5Programming,名字太长所以改了,它模仿了ActionScript的语法,包含了LSprite,LBitmapData,原创 2012-04-10 12:05:40 · 12551 阅读 · 19 评论 -
用仿ActionScript的语法来编写html5——终篇,LegendForHtml5Programming1.0开源库件
用仿ActionScript的语法来编写html5——终篇,LegendForHtml5Programming1.0开源库件终篇,LegendForHtml5Programming1.0开源库件此贴为旧版,库件1.4.1版已经发布http://blog.csdn.net/lufy_legend/article/details/7751425一,LegendForHtml5Programming1.原创 2011-10-05 11:21:40 · 14996 阅读 · 9 评论 -
HTML5游戏开发-Box2dWeb应用(二)-碰撞以及各种连接
上次介绍了用box2dweb创建各种刚体,这次来介绍如何用鼠标拖拽刚体,刚体之间的碰撞,以及刚体之间的各种连接。HTML5游戏开发-Box2dWeb应用(一)-创建各种各样的刚体http://blog.csdn.net/lufy_legend/article/details/7654607一,鼠标拖拽刚体使用lufylegend.js库件后,拖拽刚体变得很简单,只需调用LSprite的setBod原创 2012-06-18 12:09:01 · 10613 阅读 · 36 评论 -
【用HTML5来玩读心术】游戏很简单,但是挺有意思,分享给大家
“吉普赛人祖传的神奇读心术.它能测算出你的内心感应”,任意选择一个两位数(或者说,从10~99之间任意选择一个数),把这个数的十位与个位相加,再把任意选择的数减去这个和。例如:你选的数是23,然后2+3=5,然后23-5=18,在图表中找出与最后得出的数所相应的图形,并把这个图形牢记心中,然后点击水晶球。你会发现,水晶球所显示出来的图形就是你刚刚心里记下的那个图形:http://lufy.netn原创 2012-06-15 14:44:25 · 7903 阅读 · 9 评论 -
HTML5游戏开发-Box2dWeb应用(一)-创建各种各样的刚体
本篇开始,会介绍lufylegend-1.4.0的新功能,怎样结合box2dweb创建一个物理世界以及这个物理世界里的各种刚体准备工作首先你需要下载html5开源库件lufylegend-1.4.0http://blog.csdn.net/lufy_legend/article/details/7644932box2dweb你可以到这里下载http://code.google.com/p/box2原创 2012-06-13 00:30:57 · 26363 阅读 · 25 评论