- 博客(185)
- 收藏
- 关注
原创 相对路径转绝对路径c高性能
string getAbsolutePath(string input){ unsigned long size = input.size(); char buff[512]; int buffIndex = 0; unsigned char pos[100]; int sigNum = 0; for(int i=0;i<size;i++){ if ((i+2)<size && input[i] == ...
2021-06-12 02:28:21
251
转载 Mac下配置Apache服务器
原文请点击:Mac下配置Apache服务器有的时候,我们需要在内网工作组中分享一些文件或是后台接口没有及时给出,你又想要模拟真实数据,直接在项目里创建plist也可以做到这种需求,但难免让工程变得冗余且看起来比较Low。这个时候就看出配置本地服务器的重要性了,不用时刻等着后台接口的更新,只需要根据接口文档自己模拟真实数据,即方便又显得高大上。Mac自带了Apache环境,我们要做的只是稍微配置一下...
2018-04-18 23:05:56
294
原创 js类机制的简易实现
// -- @Author: Dongzhejia// -- @Date: 2018年04月16日// -- @des:js 类的简易实现function jsClass (parent) { if (parent&&typeof(parent)!="function") { throw new Error("parent tyoe error need functi...
2018-04-16 18:54:34
208
转载 js类的实现
//// JSB supports 2 official ways to create subclasses//// 1) Google "subclasses" borrowed from closure library// This is the recommended way to do it//cc.inherits = function (childCtor, p
2017-11-01 16:43:28
341
原创 简单的js胡牌算法
function tryHu(cards){var resArray = []var cds = cards.slice(0)cds.sort(function(a,b){return a-b})var haveJiang = falsevar recursion = function(){if(cds.length==0){return true}consol
2017-10-26 22:02:37
803
原创 js字符串加密
var key = "bde26f760ddb000f0a569e9bc39b9017060647e0"function encodeAndDecode(str){var keyIndex = 0var codeStr = ""for (var i = 0; i codeStr += String.fromCharCode(str.charCodeAt(i) ^ key.cha
2017-08-26 16:51:22
765
转载 Lua内存泄露检测原理
lua内存泄露首先第一点,lua中的内存泄露和我们所说的c/c++中的内存泄露本质上是不一样的。lua中有垃圾回收机制(GC),所以理论上是不会有内存泄露的。当它进行GC的时候,会从根部开始扫描所有的对象,如果某个地方对这个对象还有引用,就不会把这个对象内存collect,这个对象就没有被GC。所以lua中的内存泄露是指那些:已经没有被使用了,但外部依然还有引用存在的对象。
2016-05-21 17:33:56
1100
转载 开发者必备:六大图片、图标处理类工具
1. SlicySlicy是MacRabbit公司的跨世纪经典之作,可谓是iOS设计师必备一款的切图神器,旨在帮助设计师解决在切图上的烦恼。Slicy操作十分简单,设计师只要把PSD文件拖进Slicy的窗口,Slicy就会自动生成.jpg和.png等格式的切图文件,除此之外,Slicy还能够把普通像素的图片转换成视网膜像素的高品质图片。 主要特性:
2015-12-25 10:51:32
1912
转载 CCActionEase(4)
本文函数图像使用GeoGebra绘制,感谢它才华横溢的作者。在上一篇中我们介绍了两种反弹效果动作——Ease Back和Ease Bounce,今天我们将要介绍第三种反弹效果动作——Ease Elastic。那么这个Elastic是什么呢?维基百科上说,Elastic是对弹性体或者可伸缩纤维的口语说法,或者是指小孩子玩的跳皮筋游戏。下面我们就研究一下这个Elasti
2015-11-27 15:44:47
408
转载 CCActionEase(3)
本文函数图像使用GeoGebra绘制,感谢它才华横溢的作者。我们前面介绍的动作主要是用来改变内部动作的执行速度,接下来要介绍的这几个动作主要是用来增加表现效果的,可以看作是简单的特效。10)CCEaseBackIn1 void CCEaseBackIn::update(ccTime time)2 {3 ccTime overshoot = 1.70158f;4 m_
2015-11-27 15:42:57
395
转载 CCActionEase(2)
本文函数图像使用GeoGebra绘制,感谢它才华横溢的作者。相比之前的速度正弦变化动作(这个东西叫什么更好一些?渐变动画?)与速度指数级变化动作,CCEaseIn/CCEaseOut/CCEaseInOut更具灵活性。你可以设置运动的速率,甚至是在运动的过程中改变速率。它们拥有共同的基类——CCEaseRateAction。不要直接使用CCEaseRateAction,因为它没有实现任何变化效
2015-11-27 15:41:26
473
转载 CCActionEase(1)
本文函数图像使用GeoGebra绘制,感谢它才华横溢的作者。为了方便用户灵活地控制精灵运动,cocos2d-x提供了CCActionEase类系的动作。它们拥有相似的名字——CCEaseXxxxIn、CCEaseXxxxOut、CCEaseXxxxInOut,同时也拥有相似的行为——速度由慢至快、速度由快至慢、速度先由慢至快再由快至慢。但是除了这些,我们对CCActionEase一无所知。
2015-11-27 15:39:39
484
转载 lua时间函数
一、时间的三种格式1、用数值表示时间值 用数字值来表示时间值,实际上时间值的本质就是一个数字值。例如:d = 1131286477 这里的 1131286477 是一个以秒为单位的 格林威志时间(gmt),注意不同时区的时差2、用字符串表示时间 用字符串来来表示时间。例如:d = "2005-11-06 22:18:30"
2015-11-19 12:44:31
793
翻译 手持平台纹理格式说明
使用原则1.在内存够用的情况下,带Alpha通道的贴图请使用png格式,没有Alpha通道的使用jpg。如果你的游戏内存不足时,请使用如下所列的专属贴图格式.2.需要效率的游戏(如较多3D物件的游戏),使用请专属贴图格式.3.至于Android设备,游戏开发者贴图分格式包麻烦,直接用png最省事,需要省内存的就用PVR RGBA4444格式。如果游戏能赚钱再考虑对主流Android机做数据
2015-08-04 12:25:57
1286
转载 Cocos2dx 禁止锁屏
IOS版本:在文件AppController中的 didFinishLaunchingWithOptions函数中加一行代码即可:[objc] view plaincopyprint?// 禁止ios设备锁屏 [[UIApplication sharedApplication] setIdleTimerDisabled: YES]; Androi
2015-03-28 20:50:04
644
转载 深入分析Cocos2d-x 2.0中的“纹理”
我们来看一下cocos2d-x中的libcocos2d库,其下有许多目录,找到textures展开,可以看到有CCTexture2D,CCTextureAtlas,CCTextureCache,CCTexturePVR四个类。这四个类的功能分别是: CCTexture2D: 纹理,即图片加载入内存后供CPU和GPU操作的贴图对象。 CCTexturePVR:处理P
2014-10-14 17:36:22
1176
转载 Cocos2d-x之CCImage深入分析
Cocos2d-x之CCImage深入分析 CCImage类:支持从JPG,PNG,TIFF以及数据流,字符串中创建供Cocos2d-x进行访问的图片数据对象。 这是一个非常重要的类,因为它是你使用cocos2d-x来加载图片的基础。目前此类只支持JPG,PNG,TIFF三种图像文件,对于这三种图像文件,CCImage分别使用libjpg,libpng
2014-10-13 01:45:22
705
转载 iOS和android游戏纹理优化和内存优化(cocos2d-x)
1、2d游戏最占内存的无疑是图片资源。2、cocos2d-x不同平台读取纹理的机制不同。ios下面使用CGImage,android和windows下是直接调用png库。我测试了下,使用png库直接读取png会比CGImage还要节约1mb左右内存(图片所占内存4mb)但是速度要比CGImage慢一倍。时间和空间如何取舍就看实际情况了。不过最佳的选择似乎是pvr(即使android版本,即使不
2014-10-13 01:08:42
515
转载 内存优化
在游戏项目优化中都会碰到一个问题,如何既能减少内存又能尽量减少包的大小?在实际项目中有些经验分享一下,事实上2D游戏中最占内存的就是图片资源,一张图片使用不同的纹理格式带来的性能差异巨大,下表是我在IOS平台一个小Demo中的测试结果,该Demo的原始内存占用是7M,测试方法是一次性加载5张2048*2048的图片,使用TexturePacker工具生成图片,内存统计使用Instrument工具,
2014-10-13 00:21:14
514
转载 cocos2dx 图片变灰及正常显示实现(lua可以调用)
图片变灰, 采用shader就可以实现, 有2中方法, 1, 像CCSprite一样create2. 把CCSprite传进来, 并把图片要不要变灰的flag传进来, 具体实现看代码和后面的使用方法-----------------------------------------GraySprite.h//// GraySprite.h// godde
2014-10-12 23:57:27
2127
转载 (译)在cocos2d里面如何使用Texture Packer和像素格式来优化spritesheet
前言:这篇文章是我翻译的第一篇关于cocos2d的文章,我在翻译的时候尽量按原文意思来,但难免会加入自己一些理解进去。还有这篇文章所采用的xcode版本是3.2.5,用xcode4.0的朋友可能实现起来有点出入,我会在文章的最后给出解决办法。 文章原来出处:http://www.raywenderlich.com/2361/how-to-create-and-optimize-sprite-
2014-10-12 22:59:53
549
转载 coco2d-x 纹理研究
1.通常情况下用PVR格式的文件来进行图片显示的时候,在运行速度和内存消耗方面都要比PNG格式要快和小。一般情况下PVR消耗的内存比PNG消耗的内存小25%左右。PVR格式可以用ZWoptex导出。PVR是apple芯片能直接读取和显示的文件. 2.图片抗锯齿处理。图片放大时的处理:图片在放大的时候会出现锯齿。纹理类提供了setAntiAliasTexParamet
2014-10-12 22:57:39
599
转载 图片mask混合
Texture2D* openImage(const char* jpgFile,const char* maskFile){ std::string name = jpgFile; name.erase(name.length()-4,4); std::string outname = name + ".png"; auto ret = Direc
2014-10-12 22:55:58
587
转载 Sublime Text
所谓磨刀不误砍柴工,找到一个好的编辑器会让代码编写更加流畅找了很多编辑器,最终找到真爱 sublime text这玩意可以说是,你想它低调他就能低调,你想它大气就能大气。支持很多扩展、插件、自定义,可定制性非常高。对于cocos2d-x的自动补全,可以使用cocos2d_lua_snippets这个插件使用很简单,从git上下载所有文件,然后打开sublime text
2014-07-16 13:45:01
543
转载 CocoStudio sample讲解 SampleChangeEquip 换装系统
换装系统是游戏里面可以提升游戏内容的部分, 就像电影里面女猪脚总是不停地上换一套一套漂亮的衣服. 我们在做游戏的时候, 就没有拍电影那么潇洒了, 要费好大力气才能实现换装. 现在CocoStudio提供了超酷的换装系统, 分分秒秒实现换装, 让我们游戏的主角也可以像电影女猪脚那样不停地换上漂亮, 酷帅的衣服装备了. 下面就让我们看看如何实现吧! 一 目标 在本教程里,
2014-07-14 18:11:54
1146
转载 Cocos2d-x3.0 lua绑定C++类
这里记录下我实现Lua绑定的全过程。原文地址:http://blog.csdn.net/qqmcy/article/details/26099859准备工作:1、创一个一个Lua的2dx工程。(这个网上已经有好多了)2、创一个C++类。TestScene.h 这个只是一个简单的场景[cpp] view plaincopyprint?//
2014-07-01 01:20:39
505
转载 lua常用库函数
lua常用库函数table一部分的table函数只对其数组部分产生影响, 而另一部分则对整个table均产生影响. 下面会分开说明.table.concat(table, sep, start, end)concat 是concatenate(连锁, 连接)的缩写. table.concat()函数列出参数中指定table的数组部分从start位置到e
2014-06-29 12:20:03
836
转载 lua常用数学库
lua_getallocflua_Alloc lua_getallocf (lua_State *L, void **ud);返回给定状态机的内存分配器函数。如果 ud 不是 NULL ,Lua 把调用lua_newstate 时传入的那个指针放入*ud 。lua_getfenvvoid lua_getfenv (lua_State *L, int index);把索引处值
2014-06-29 12:12:51
639
转载 cocos2d-x常用函数和宏
最近我们的cocos2d-x游戏项目已经进入了正式开发的阶段了,几个dev都辛苦码代码。cocos2d-x还是一套比较方便的api的,什么action啊、director啊、ccpoint啊都蛮便捷的。但是我看到几个dev有时候会很不知道用它们,还是首先自己去写函数……用一些比较原始、低效率的方法……甚至是copy / paste………………。……。这不科学
2014-06-29 11:49:26
624
1
转载 cocos2d-x中通过Jni实现Java与C++的互相调用
cocos2d-x中通过Jni实现Java与C++的互相调用。cocos2d-x用开发者提供了一个类JniHelper,提供了java与c++之间互调的jni解决方案。笔者所开发的“史上最坑爹的游戏”项目中使用到了JNI,为此专门定义了一个类JniUtil.头文件JniUtil.h中需要引入如下两个.h文件:1#include
2014-05-11 23:30:43
796
转载 cocos2d-x 通过JNI实现c/c++和Android的java层函数互调
文章摘要: 本文主要实现两个功能: (1)通过Android sdk的API得到应用程序的包名(PackageName),然后传递给c++层函数。 (2)通过c++函数调用Android的java层函数,显示一个对话框,点击按钮退出程序。 1. 首先来简单学习一下JNI的相关知识,我这篇文章中简单实现了怎么在Android Java层调用c++函数。要想使用JNI,必须得…本文
2014-05-11 23:29:48
731
转载 Cocos2dx中Android部分的c++和java实现相互调用
要完成在cocos2dx的场景上一个点击事件,传递一个消息到java层,下面让我们看看如何完成它。包括 你需要在你的项目中添加以下引用,原作者已经建立了一个在线项目。请确保在你的项目中包含文件了c++和Java,这里有个链接你可以查看一下: EasyNDK C++ 层面: 01#include "NDKHelper.h"
2014-05-11 23:16:35
462
转载 Cocos2dx 小技巧(六)断言CCAssert
这篇介绍的是让广告劳苦群众又爱又恨的CCAssert!--------------------------------------CCAssert,也就是断言啦,当然了功能和断点也挺相似的。使用断言可以创建更稳定,品质更好且不易于出错的代码。具体用法看下面:[cpp] view plaincopyCCAssert(cond, msg); // 断言表达式co
2014-05-09 22:15:05
687
转载 Cocos2dx 小技巧(七) 静态数据
这次讲下静态数据的使用。额,看到静态数据几个字是不是感觉很有技术性,什么static之类的。哈哈。那么啥是静态数据呢?静态数据就是程序中的只读数据,例如我们游戏里有一些NPC,他们的名字、图片、人物介绍都是固定不变的,并不会再游戏过程中发生改变,例如你并不可能说在《富甲封神传》这款游戏里用哪吒打败了李靖就认为哪吒是李靖的老子吧?当然了,在游戏开发过程中这些NPC的属性数值可能经常变动,如哪吒的
2014-05-09 22:14:41
533
转载 Cocos2dx 3.0 过渡篇(二十四)死不了的贪食蛇(重力版)
近来cocos2dx的论坛刮起了一阵制作贪食蛇的潮流,我也打算来凑个热闹。不过主要目的还是因为在写3.0过渡篇的系列博客时讲的都是理论,缺少实践。这次就用贪食蛇的例子较为系统的介绍3.0与2.0的一些不同之处。(当然了,有的人肯定会说我是冲沈大海老师的书来了,这种事坚决不能忍!,我慎重说明:我的收货地址是...)------------------贪食蛇嘛,大家都懂的,就是那条又长又细、可
2014-05-09 22:14:18
696
转载 Cocos2dx 小技巧(八) visit的逆袭
这次我从茫茫码海里将visit给拉了出来。这货有啥用呢?呵呵,用法从一个故事说起吧:假设你暗恋一个女神(就叫奶茶MM吧~),追求的第一步肯定要先知道她的一些资料,如姓名,年龄,身高,三围...等等。但羞涩的你不知从何下手,这时博主脚踏七彩祥云从天而降!博主说:奶茶MM最全的第一手资料就在一个dic字典里,想知道就自己去取吧。你很高兴,激动的说:dic在哪里啊?博主一愣,dic...
2014-05-09 22:13:40
577
转载 Cocos2dx 小技巧(九)现成的粒子特效
这篇讲的是粒子,其实我对粒子这一块没什么研究,因为当初刚开始接粗cocos2dx时,总经理和我说粒子这块可以暂时不去了解,因为还用不到。他的这话也导致我很长时间都有意无意的去避开粒子这一块知识。所以说啊,我也是个菜鸟啊,还有很多东西不懂。虽然博客写的还比较多,但水平也就尔尔吧,有的人叫我大神,大侠啥的,请千万别“诅咒”我啊~~~。因为知识从懵懂到理解的过程是痛苦而又快乐的,每次一学到一个新的知识点
2014-05-09 22:12:59
998
转载 Cocos2dx 3.0 过渡篇(二十五)死不了的贪食蛇(触摸版)
上一篇写的贪食蛇的重力感应控制版,这一篇就讲下触摸控制版吧。额,也不知道写了那个贪食蛇教程到底有没有获得沈老师的书,如果没有的话,看我不拿西瓜刀砍掉 偶尔E往事 的那啥!重力版链接:http://blog.csdn.net/start530/article/details/23707985触摸版与重力版的代码大部分都一样,不一样的地方就是要将打开重力感应换成创建一个触摸监听。过
2014-05-09 22:12:27
516
转载 Cocos2dx 3.0 过渡篇(二十六)C++11多线程std::thread的简单使用(上)
本篇介绍的是线程!在cocos2dx 2.0时代,我们使用的是pthread库,是一套用户级线程库,被广泛地使用在跨平台应用上。但在cocos2dx 3.0中并未发现有pthread的支持文件,原来c++11中已经拥有了一个更好用的用于线程操作的类std::thread。cocos2dx 3.0的版本默认是在vs2012版本,支持c++11的新特性,使用std::thread来创建线程简直方便
2014-05-09 22:11:58
755
转载 Cocos2dx 3.0 过渡篇(二十七)C++11多线程std::thread的简单使用(下)
简单的东西我都说的差不多了,想挖点深的差点把自己给填进去。下面实际演练一下。请允许我参考偶尔E往事的一篇线程的博客, 他用的是pThread,这里我就用std::thread。1.售票孙鑫老师的C++和Java多线程售票也一直让我念念不忘(好吧,我承认我没看过),这里用cocos2d-x3.0和C++11的std::thread实现一个吧。总共有100张诺亚方舟船票,有2个售票点A和B
2014-05-09 22:11:31
498
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人