
cocos2d-x学习笔记
文章平均质量分 79
star特530
生活是如此的美好,即使那无法预知的未来!
展开
-
Cocostudio学习笔记(2) Button + CheckBox
昨天好不容易让cocostudio排好的图片资源在cocos2dx工程中跑起来了,其实也就是一个按钮。说到按钮,那我这次就要让按钮点击后实现对应的功能,如按下去后会发生什么什么。这个有以下几个步骤:1、从cocostudio生成的.json文件中提取资源;2、在提取出来的资源包里找到我们要用的按钮button;3、添加按钮对应的回调函数原创 2014-07-07 08:36:18 · 8459 阅读 · 2 评论 -
Cocos2dx 3.0 过渡篇(二十三) C++11一种新随机数获取方法
但是rand函数有一些问题:即使不是大多数,也有很多程序需要不同范围的随机数。一些需要浮点随机数,一些需要非均匀分布的数。而程序员为了解决这些问题而试图转换rand生成的随机数的范围、类型或分布时,常常会引入非随机性(我很不客气的借鉴了C++ primer里的原话)当然了,不要在意上面的这些细节。我更关注的新的随机数获取方法到底好不好用,能不能在根源解决男...啊不,解决让随机数的获取更加简便。新的随机数获取途径包括两个东东,一个叫随机数引擎类,一个叫随机数分不类)。一个引擎类可以生成unsigned原创 2014-04-08 08:23:54 · 6506 阅读 · 9 评论 -
Cocos2dx 小技巧(九)现成的粒子特效
和高中的她 差不多有两三年没见面了吧。下午她正好来泉州,我俩出来一起吃了个饭。怎么说呢,自从高中毕业后我俩的联系就少了很多,大学期间也就见过两三面吧。如今毕业也快一年了,她已是人妇,而我自己的感情也是经历的长期的稳定与近期的跌宕。其实那份感觉一直都不曾改变,变了的是周边不断影响自己的人和事。你要好好的幸福下去,而我也在争取幸福的路上。原创 2014-04-21 08:21:24 · 6205 阅读 · 4 评论 -
Cocos2dx 3.0 过渡篇(十七) std::bind与CC_CALLBACK不得不说的故事
// new callbacks based on C++11#define CC_CALLBACK_0(__selector__,__target__, ...) std::bind(&__selector__,__target__, ##__VA_ARGS__)#define CC_CALLBACK_1(__selector__,__target__, ...) std::bind(&__selector__,__target__, std::placeholders::_1, ##__VA_ARG原创 2014-03-14 19:04:41 · 15901 阅读 · 21 评论 -
Cocos2dx 3.0 过渡篇(二十九)globalZOrder()与localZOrder()
感谢博主,感谢cocos2dx3.0。是的了,cocos2dx3.0就是这么神奇!如果你还在使用2.0那你就out啦!赶紧拿起电话, 拨打110订购吧!只要998,3.0带回家。钱请直接打到我支付宝账户上面。谢谢!原创 2014-05-06 08:37:00 · 16545 阅读 · 15 评论 -
Cocos2dx 3.0 过渡篇 (二十) 闲扯强制类型转换
我觉的通常情况下用dynamic_cast最好,它检查的更严格些,其次是static_cast,而后两者也就是const_cast和reinterpret_cast较之前两者貌似不太常用(我会告诉你我根本就没用过吗...),而且也不推荐使用,const_cast在用于去除const的地方还是有所发挥的,reinterpret_cast在转换时,不会在内存中进行补足比特位(例如int转换到double,需要补足4字节),这往往是不安全的,而且代码也是不可移植的。所以我主要介绍的还是static_cast和d原创 2014-03-25 12:31:17 · 8391 阅读 · 6 评论 -
Cocos2dx 小技巧(四)delegate委托
很久很久以前,有一个叫StatusDelegate的智者,他有一种与生俱来的本领:读心术(可以知道别人的状态和想法)。他膝下有一女叫雅典娜(StatusLayer),庆幸的是雅典娜遗传到了智者的读心术。有一个叫盖伦(GameLayer)的帅气小伙子非常想学读心术,于是他拜智者为师。智者告诉盖伦说:读心术是教不来的,想学读心术只有一个办法,那就是娶我的女儿雅典娜为妻,然后与她阴阳双修...最终以她身体为媒介才能拥有读心术的能力。这个条件太过苛刻了,我最后问你一遍:你愿意吗?盖伦艰难的吞了口口水,激动的原创 2014-04-04 08:52:16 · 7266 阅读 · 9 评论 -
Cocos2dx 3.0 过渡篇(二十四)死不了的贪食蛇(重力版)
近来cocos2dx的论坛刮起了一阵制作贪食蛇的潮流,我也打算来凑个热闹。不过主要目的还是因为在写3.0过渡篇的系列博客时讲的都是理论,缺少实践。这次就用贪食蛇的例子较为系统的介绍3.0与2.0的一些不同之处。(当然了,如果版本能看在我码字辛苦的份上施舍我一本书,那我还是很乐意接受的,我的收获地址是...)。原创 2014-04-15 16:21:23 · 6120 阅读 · 14 评论 -
Cocos2dx 小技巧(三)Label的换行
有些技巧你不知道不要紧,但知道后会很牛逼。近来玩上了刀塔传奇,这游戏做的真心不错。为什么会有这种评价呢?本人虽然是开发游戏的,但能让我玩超过一小时的游戏真心不多(不包括自己参与开发的游戏,嘿)。我虽然没玩过dota,但却是英雄联盟的狂热爱好者!排位白银分段啊有木有!求超越!----------------好了,这次又把Label这货拉出来鞭一鞭。我先创建一个label原创 2014-04-02 12:51:41 · 16851 阅读 · 7 评论 -
Cocos2dx 小技巧(十一) 小人虽短,但可以旋转
转眼五一就到了,放假三天应该做些什么呢?窝在家里钻研技术?写博客?no no no no,这种“伤害”自己的方式实在让我无法忍受。本来和大学那伙人越好了一起去哪里玩玩,喝酒聊天啥的,由于一部分的犹豫不决导致计划搁浅。人心啊,当然我也不是抱怨人心变得太快啥的,只是觉得难得有机会聚聚实在不应该轻易放弃,所谓且行且珍惜。一小伙伴毕业才半年就结婚了,实在搞不懂为什么要如此之早的将自己拉入“坟墓”?看看现在,叫他出来high都推三阻四的,有家室后就成了另一个世界的人了。我也有思考过如果女友和我同居(前提是有个女友)原创 2014-05-04 08:21:17 · 8411 阅读 · 3 评论 -
Cocos2dx 小技巧(八) visit的逆袭
你用博主的办法获得了很多女神的资料,非常高兴。和博主道别后赶紧回家,关上门窗,拉上窗帘......博主含笑看着你离开,微微点了点头,飘然离去,深藏功与名!而此时空中似乎还流传着博主哼的那首歌:”你要离开,我知道很简单...你说依赖,是我们的阻碍..就算放开,但能不能别没收我的爱,当做我最后才明白..."。声音低沉且性感,还夹带着淡淡的忧伤...原创 2014-04-17 08:19:55 · 7259 阅读 · 12 评论 -
Cocos2dx 3.0 过渡篇(二十二)各种遍历与范围for语句的使用
时至今日都是我咎由自取,错就错,与任何人无关。IT事业的平顺,造就了低调谦虚的我。风度翩翩的气质,导致今日岌岌可危的地步,我今天愿意承担一切后果。其实,我很感谢你们让我跌倒在今天,而不是在我出任CEO的将来。我必须重新吹个发型,坦然面对镜中的自己并作出慎重的决定!我star特,在新浪博客写了一些水平凑合的文章。我辜负了Jacky姬和木头凶,辜负了...(好吧,实在编不下去了,都什么乱七八糟的...原创 2014-04-01 13:10:39 · 7712 阅读 · 7 评论 -
Cocos2dx 3.0 过渡篇(二十五)死不了的贪食蛇(触摸版)
上一篇写的贪食蛇的重力感应控制版,这一篇就讲下触摸控制版吧。额,也不知道写了那个贪食蛇教程到底有没有获得沈老师的书,如果没有的话,看我不拿西瓜刀砍掉 偶尔E往事 的那啥!触摸版与重力版的代码大部分都一样,不一样的地方就是要将打开重力感应换成创建一个触摸监听。原创 2014-04-16 07:49:34 · 838 阅读 · 8 评论 -
Cocos2dx 小技巧(一)预定义文件路径
通宵想了一晚(如果你信的话),打算出一栏cocos2dx小技巧相关的博客,有以下几种特点:1、精简;2、实用;3、偶尔带点暴力,黄...我们的主题是:有些技巧你不知道不要紧,但知道后会很牛逼。-------------------------------------下面进入正文:假设在项目工程的Resource有好多个目录,如image,fonts,Menu,Inter原创 2014-03-30 14:03:39 · 5157 阅读 · 5 评论 -
Cocos2dx 小技巧(二)单例
我们的主题是:有些技巧你不知道不要紧,但知道后会很牛逼。-----------------------------------------------------------------------------------------------------------首先来说下什么是单例:单例模式是设计模式中最简单的形式之一。这一模式的目的是使得类的一个对象成为系统中的唯一实例。单例原创 2014-03-30 21:37:27 · 5495 阅读 · 8 评论 -
Cocos2dx 小技巧(七) 静态数据
在我看来,程序员如果在工作外的时间都还钻在代码的世界里不能自己拔自己,那可能永远也只是一个程序员了。前辈说:程序员的形象就是邋遢,人字拖+沙滩裤,于是你就这么穿了;前辈说:程序员很难找到女朋友,也许你的爱情观就发生了改变,一有空就对着苍老师来上一发;前辈说,程序员不是程序员,而是程序猿,于是你也认同了这个说法,并以这个称号而沾沾自喜。其实随时都要认为自己的职业是高尚的,脱离了低级趣味的。偶尔应该告别自己的右手,尝试着穿一次正装,西装皮鞋上身,自信油然而生。穿什么就是什么,森马休闲服。原创 2014-04-14 08:42:59 · 4378 阅读 · 6 评论 -
Cocos2dx 3.0 过渡篇 (二十一)自从Label有了freeType做靠山以后...
cocos2dx 3.0版本之前,我们一直都是用CCLabelTTF,CCLabelBMFont,CCLabelAtlas来创建文本标签,但是!3.0版本放出来后...看到这里你心里是不是又颤抖了一下?别害怕嘛,我要说的是:3.0版本出来后这些标签也都是还可以用的啦,只是说我们有了更好的选择。cocos2dx3.0添加了一种新的文本标签,这种标签不同的地方有:使用freetype来使它在不原创 2014-03-27 20:25:44 · 18255 阅读 · 8 评论 -
Cocos2dx 3.0 过渡篇(十六)用ClippingNode做游戏的新手引导
CCClipingNode是一个可裁剪节点,简单理解:(1)首先它是一个节点,继承于CCNode,所以它可以像普通节点一样放入CCLayer,CCScene,CCNode中。(2)作为节点,它就可以用作容器,承载其他节点和精灵。我把它叫底板。(3)如果想要对一个节点进行裁剪,那需要给出裁剪的部分,这个裁剪区域,我把它叫模版。所以CCClipingNode裁剪节点在组成上=底板+模版,而在显示上=底板-模版。不知道这样解释会不会好理解一点。原创 2014-03-09 17:24:26 · 13471 阅读 · 2 评论 -
Cocos2dx 小技巧(十二) 一种可行的系列动画播放方式
1、如果要让你个精灵先移动到某个坐标,然后再旋转,该如何实现呢? 答:当然是使用Sequence了,疗效过,效果好!2、如果想让一个对象的动画播放完后,另外一个对象接下去播放 答:这个的实现方法就比较多了,用TargetedAction 或者 Callfunc 等,都是可以的;3、如果想让多个对象安卓不同的时间段播放,那么该怎么做呢? 答:那就用多个Callfunc或者TargetedAction。如果你是这么回答的话,那我也只能呵呵了,有人会说用ActionManage,这个我没怎么去用过,这样也原创 2014-05-08 08:52:59 · 4841 阅读 · 3 评论 -
cocos2d-x 菜鸟实习生学习篇(七) 逐帧动画(下)
今天再来添加一种逐帧动画的方法,或者说这不是方法,而是封装。是的,你没看错,是封装!!!这几天自己在做一个小游戏,用来差不多一周多的时间。我想也就实习生才能有这么多工作时间让你去搞这些自己的游戏吧?游戏的制作很多都是参考 《ios 5 cocos2d 游戏开发实战》 这本书里的一些代码风格,感觉写的不错。缺点就是这本书都是obj-c 的语言,而我只会c++,可以想象移植过程的压力是多大?!原创 2013-02-01 14:16:05 · 820 阅读 · 0 评论 -
Cocos2dx 3.0 过渡篇(二十五)死不了的贪食蛇(触摸版)
上一篇写的贪食蛇的重力感应控制版,这一篇就讲下触摸控制版吧。额,也不知道写了那个贪食蛇教程到底有没有获得沈老师的书,如果没有的话,看我不拿西瓜刀砍掉 偶尔E往事 的那啥!原创 2014-04-22 08:52:22 · 6308 阅读 · 8 评论 -
Cocos2dx 小技巧(十六)再谈visit(getDescription)
之前两篇都是介绍与Value相关的,这篇我继续这个话题吧,正好凑个“Value三板斧系列...”。在很久很久以前,我用写过一篇博客,关于如何查看CCArray与CCDictionary里存放的元素:现在既然它俩已经都是过去式了,那么之前的查看方法肯定也是不能用了。而Value作为它们的替代者之一,自然也有它查看元素的方法,那就是getDescription()这个接口,下面我简单举个例子:原创 2014-07-24 08:39:57 · 7668 阅读 · 3 评论 -
Cocostudio学习笔记(1) 扯扯蛋 + 环境搭建
我学习新东西时都有做笔记的习惯,学习Cocostudio自然也不例外。这份笔记存放在云盘中已经有一段时间了,初衷是不打算发到博客上来的,毕竟是笔记,技术层面较为基础。但后来想想,我当初写博客的初衷是什么?还不是当云笔记来用吗?(希望某人看到别打我),方便自己的同时也能够帮到一些人。下面简要声明几点:1、虽然笔记篇幅较多,但我尽量只用三四篇就将它们全都发出来。2、着重要说的一件事:做笔记是没有截图的,所以,大家都看文字吧。所以本人的文采还过的去,应该不会看得太无趣,哈哈!3、笔记中我没有提到在Coco原创 2014-07-03 08:36:31 · 4833 阅读 · 2 评论 -
Cocos2dx 3.0 过渡篇(三十二)话说ValueMap的一般使用
周末到厦门找死党聚聚,晚上一伙人杀到一还算凑合的大排档准备来个不醉不归。菜都点完了朋友突然说这里没有洗手间...尼玛,当时我们就不乐意了:喝五六个小时的啤酒,没有洗手间你是打算憋死谁?二话不说直接换一家,不过这次一定要谨慎选择,最终看到一家看起来还算正宗的大排档,我下意识拨了下头发,走到前台MM面前,轻声问道:你们这...有洗手间吗?声音低沉且性感,语调中还夹带着些许的忧伤。前台MM瞪大眼睛,好一会才反应过来说道:洗手间?肯定有啊!原创 2014-07-22 08:39:38 · 9249 阅读 · 2 评论 -
Cocos2dx 小技巧(十五)话说ScrollView的delegate实现过程
转眼六月份都快过去了,我发现这个月我一篇博客都没发表。表示很羞涩......下个月很有可能会迎来博客大爆发,只是博客的主题有点......呃,留点悬念吧。---------------------有小伙伴和我反应说虽然看过我之前写的那篇 delegate相关的文章,但再去看看ScrollView委托的实现过程还是不好理解。下面我就以一个新手的角度来研究下ScrollView的委托实现流程到底是怎样原创 2014-06-25 08:31:06 · 9237 阅读 · 4 评论 -
Cocos2dx 3.0 过渡篇(三十一)ValueVector和Vector不得不说的故事
有这么一个纠结的选择题:有一天你遇到一个外星人,这时外星人很热情的邀请你到他们星球去玩,你如何选1:去,但是你有可能永远不能在回来。2:不去,但是外星人会消去你的记忆这问题很刺激有木有?!看似简单的一个问题,不同的答案却隐藏着不同的含义。鱼与熊掌不可兼得,类似这种例子生活中会经常碰到。同样的,如果你有去了解过Cocos2dx3.0,也会遇到这样一个令人纠结的情况:那就是:Value 与 Vector(Map)。为什么这么说呢?且听我慢慢道来。原创 2014-07-16 10:36:55 · 12148 阅读 · 14 评论 -
Cocos2dx 小技巧(十四)ScrollView实现缩放效果
这阶段心绪比较乱,所以这篇开头就不扯淡了。(谁说大姨夫来了我跟谁急!~~)说到大姨夫我突然想到英雄联盟有个美女解说叫伊芙蕾亚,她的堂弟ID竟然叫:姨夫累呀,好笑吧(呵呵,有点冷~~额,我都说不扯淡了)。原创 2014-05-15 08:52:01 · 15444 阅读 · 6 评论 -
Cocos2dx 3.0 过渡篇(二十八)C++11强类型枚举
一朋友在微信朋友圈晒了张照片,随手点开大图,带着欣赏的眼光扫了下,恩,几个月不见,又漂亮了...咦?等等,她戴的这是什么?酷炫的造型!金属边框!微型摄像头!这不是传说中的谷歌眼镜么?土豪啊,还好我们已经是朋友了...我先给了她一个赞,然后直奔主题,霸气回复道:我过几天去找你,你戴的是谷歌眼镜吧,哼哼小样,不想死的话...就让我...摸一下下可以么,我不奢求戴,摸一下就满足了...(哎,丢人啊)。-原创 2014-04-28 08:27:17 · 5187 阅读 · 10 评论 -
Cocos2dx 3.0 过渡篇(五) 随机数的获取
随机数种子就相当于 随机数的重置开关,你如果想获得随机数,肯定要先把开关打开吧,初始化了随机数种子,也就是相当于打开开关,这时候“种子”就开始起来了,你每隔一段时间获取随机数,它都会反馈给你一个不同的位置数据,而如果你每获取数据就要初始化随机数种子(也就是重启开关),这就相当于“种子”又从起点重新出发,这不是要累死“种子”的节奏么?原创 2014-01-23 20:12:20 · 14027 阅读 · 12 评论 -
Cocos2dx 小技巧(十三)聊聊坐标系
1、OpenGL坐标系:该坐标系原点在屏幕左下角,x轴向右,y轴向上。这也就是cocos2dx中用到的坐标系所以没啥好说的。2、屏幕坐标系:该坐标系的原点在屏幕左上角,x轴向右,y轴向下,其实和OpenGL坐标系的差别也就是y轴的方向拉。假设游戏场景的分辨率为(500,500),其中一个点的坐标为(200,200),那么它在OpenGL坐标系中的坐标还是(200,200),在屏幕坐标系中则要倒过来,则为(200,500-200)。其实也就是6和9的差别啦,呵呵,六九式...3、世界坐标系:又名绝对坐标系原创 2014-05-12 08:54:51 · 4333 阅读 · 2 评论 -
Cocos2dx 3.0 过渡篇(十九)新鲜出炉的Value该怎么玩
一开始使用CCArray时,想往里塞int型或者float型的变量都不行,只因为int等类型的身份”过低“,不是Object的家族成员。一心奔小康的我果断向贵族成员:CCInteger,CCFloat等靠拢。后来呢,也就是到了3.0beta后的版本,CCArray和CCDictionary一起殉情了,这直接导致CCInteger,CCFloat在Object的家族地位急剧降低。作为一家之主的Object虽不想看到自己的子孙就此没落,但因为年岁过大也无力改变现状。于是呢,999岁的Object趁着自己还有最后原创 2014-03-21 08:49:46 · 10094 阅读 · 13 评论 -
Cocos2dx 小技巧(六)断言CCAssert
CCAssert,也就是断言啦,当然了功能和断点也挺相似的。使用断言可以创建更稳定,品质更好且不易于出错的代码。具体用法看下面:CCAssert(cond, msg); // 断言表达式cond为真,如果不为真,则显示字符串msg信息原创 2014-04-11 08:08:21 · 7704 阅读 · 5 评论 -
Cocos2dx 3.0 过渡篇(十八) Cocos2d-x 3.0rc,又一种创建项目方式
准备工作:1、下载最新的cocos2dx 3.0rc0,http://www.cocos2d-x.org/download2、下载python2.7版本,如果之前有下载过python并且是2.7的,那么你可以跳过这步;如果之前下载的是3.3以上版本的,请重新下载2.7版,别问我为什么,因为下面会偷偷告诉你:https://www.python.org/download/releases/2.7.6/3、下载安卓开发环境必备的那些什么NDK啊,SDK啊,ant原创 2014-03-19 08:44:44 · 24958 阅读 · 38 评论 -
Cocos2dx 小技巧(五)常用宏介绍
在第四篇介绍委托时,CC_SYNTHESIZE 这个宏出来show了一番后回去很是嘚瑟,于是他的兄弟姐妹们不干了,凭什么他能show而他们就不行?为了公平起见,我赶紧也把其他的常用宏也拉出来溜溜。原创 2014-04-10 08:32:47 · 5263 阅读 · 1 评论 -
Cocos2dx 小技巧(十)三种缓存类介绍
在介绍三个缓存时,我们要先理清一个问题:什么是纹理?通俗的解释呢,纹理就是图片的意思啦。当一张图片被加载到内存后,它是以纹理的形式存在的。从这里可以看出,纹理其实就是一块内存!这块内存中存放的是按照指定的像素格式填充的图片像素信息。原创 2014-04-25 08:26:09 · 7169 阅读 · 0 评论 -
Cocos2d-x 解惑
2013-8-17Http相关:1>libExtensions.lib(HttpClient.obj) : error LNK2019: 无法解析的外部符号 __imp__pthread_create,该符号在函数 "private: bool __thiscall cocos2d::extension::CCHttpClient::lazyInitThreadSemphore原创 2013-08-17 09:38:09 · 3638 阅读 · 0 评论 -
Cocos2dx 3.0 过渡篇(二十七)C++11多线程std::thread的简单使用(下)
使用std::mutex有一个要注意的地方:在线程A中std::mutex使用成员函数lock加锁unlock解锁,看起来工作的很好,但这样是不安全的,你得始终记住lock之后一定要unlock,但是如果在它们中间出现了异常或者线程直接退出了unlock就没有执行,因为这个互斥量是独占式的,所以在threadA没有解锁之前,其他使用这个互斥量加锁的线程会一直处于等待状态得不到执行原创 2014-04-23 08:25:49 · 10573 阅读 · 6 评论 -
Cocos2dx 3.0 过渡篇(二十六)C++11多线程std::thread的简单使用(上)
昨天练车时有一MM与我交替着练,聊了几句话就多了起来,我对她说:”看到前面那俩教练没?老色鬼两枚!整天调戏女学员。“她说:”还好啦,这毕竟是他们的乐趣所在,你不觉得教练每天都教学员是很枯燥的一件事么?所以调戏学员是他们每天的乐趣,这样工作才更有动力“。我承认听完她的话我愣住了!事后一夜没睡,总结出了两点:1、看待问题一定要从多个角度分析,别太主观,我觉得他们是色鬼,难免会有嫉妒的因素在里面(当然了,这个可能性几乎为0,像我这种风一般的男纸,会嫉妒他们?)。2、程序员的工作日常别总是单一的敲代码,那太枯原创 2014-04-22 08:55:35 · 12310 阅读 · 7 评论 -
Cocos2dx 3.0 过渡篇(十五)帧动画的存储播放
前两篇博文用恶搞的形式写了action的相关使用,这算是自己的一种尝试,也可以说是心情的发泄。本篇是action三板斧的最后一板,经过深思熟虑后,我决定就用正常人的方式写吧...这次主要介绍动画的创建即存储,要实现的功能有:1、创建四组动画,并存放至Array中;2、创建四个虚拟方向按钮,控制精灵移动与播放相应方向的动画;实现过程如下:1、事前准备:宏定义每原创 2014-03-05 19:29:23 · 7373 阅读 · 3 评论 -
Cocos2dx 3.0 过渡篇(十四)用touch拖动女主打败小三!
boy 和 girl 甜蜜的交往了两年,但是,由于boy是一个文理双修的优秀男儿,小三不得不跳出来了!小三设计出种种阴谋来拆散boy和girl。最后他俩大吵了一架。在冷战期间,小三强势入内,伴随boy左右!女主发现这个情况后,意识到所有一切都是小三搞的鬼,但她又拉不下脸来去和boy道歉。而我们的故事也就是从这里开始的。主线剧情:拖动girl移动到男主旁的红色框框内。分线剧情:girl一进入红框,就能立马被boy文理双修的气质所吸引,飞到他..身边。分线剧情:按照剧情安排,小三必须在女主回来的时候马上原创 2014-03-03 12:09:24 · 6502 阅读 · 6 评论