- 博客(240)
- 资源 (7)
- 收藏
- 关注
原创 Appdelegate中设置OpenGL属性
void AppDelegate::initGLContextAttrs() { //设置OpenGL上下文属性,现在只能设置六个属性: //红,绿,蓝,透明度,深度,模板 GLContextAttrs glContextAttrs = {8, 8, 8, 8, 24, 8}; GLView::setGLContextAttrs(glC
2017-08-31 09:27:31 528
原创 屏幕适配
FrameSize就是屏幕的实际分辨率,这是不变的,比如我用的盖世三的手机分辨率为1280x720,这就是盖世三的FrameSize。注意这个FrameSize很容易理解成屏幕的长宽多少,其实不是,分辨率和实际的长宽没有必然联系。 比如:盖世3的尺寸(长宽)为4.8寸,分辨率为1280x720盖世4的尺寸(长宽)为4.99寸,分辨率为1920x1080所以在设计游戏时,只考虑屏幕
2017-08-31 09:27:05 124
原创 Scale9Sprite的使用
Scale9Sprite* pImgTabBk = Scale9Sprite::createWithSpriteFrameName("ca_img_bk.png");pImgTabBk->setCapInsets(Rect(30.f, 30.f, 40.f, 40.f));//设置伸缩后的内框大小pImgTabBk->setContentSize(Size(270.f, 460.f));
2017-08-31 09:26:34 323
原创 Visual Studio编译错误
1、Debug编译,报错: fatal error LNK1104:无法打开文件“glew32.lib”解决如下:把F:\work\cocos2d-x\cocos2d-2.0-x-2.0.4\Debug.win32下的静态链接库 libcocos2d.lib、libEGL.lib、libgles_cm.lib、libxml2.lib、libzlib.lib 拷贝至F:\wo
2017-08-31 09:26:27 802
原创 应用图标在不同手机相对应不同分辨率的图标
drawable-hdpi:72*72drawable-mdpi:48*48drawable-ldpi:32*32
2017-08-31 09:26:21 641
原创 cocos2dx中可以用两种方式输出日志文件
1、log 例如log("editBox %s was returned !",editBox->getText());2、CCLOG 例如CCLOG("%s",editBox->getText());
2017-08-31 09:26:12 1105
原创 Cocos2dx中TableView中一些函数的作用
1、void reloadData();//重新加载数据从数据源。该视图将刷新。2、setVerticalFillOrder(TableView::VerticalFillOrder::TOP_DOWN) //列表设置为从小到大显示,及idx从0开始 如果是TableView::VerticalFillOrder::BOTTOM_UP列表设置为从大到小显示,及idx从idx-1开始
2017-08-31 09:25:59 529
原创 cocos2dx中Ref的 retain()和release()的区别
1、如果不想被释放,那么就要调用对象的retain函数,这样对象不会被内存管理机制杀掉了。2、当不需要再使用这个对象时,就要调用对象的release函数,这是和retain对应的。一般可以在析构函数里调用release函数3、release是主动释放回收,autoRelease由系统判断回收。
2017-08-31 09:25:40 1267
原创 解决中文乱码问题(GBKTOUTF8)
int code_convert(const char *from_charset, const char *to_charset, char *inbuf, uint32_t inlen, char *outbuf, uint32_t outlen){iconv_t iconvH;iconvH = iconv_open(to_charset, from_charset);if (
2017-08-31 09:25:10 1640
原创 触摸事件监听
1、.h文件需要虚继承父类的onTouchBegan、onTouchMoved onTouchEnded onTouchCancelled,如果需要添加自己实现的内容,到cpp文件实现,如果不实现,直接到头文件加上{}virtual bool onTouchBegan(Touch* touch, Event *unused_event);virtual void onTouchMove
2017-08-31 09:24:47 702
原创 cocos2dx中Size创建的对象,比较一个Size大小使用equals
Size size = Size(960,640);if (size.equals(Size(960,640))){cclog("123");}
2017-08-30 09:16:40 443
原创 Director类的使用
在Cocos2d-x中,把统筹游戏大局的类抽象为导演类(Director),Director是整个cocos2d-x引擎的核心,是整个游戏的导航仪。游戏中的一些常用操作就是由Director来控制的,比如OpenGL ES的初始化,场景的转换,游戏暂停继续的控制,世界坐标和GL坐标之间的切换,对节点的控制等,还有一些游戏数据的保存调用,屏幕尺寸的获取等都要由Director类来管理控制的。
2017-08-30 09:16:33 1223
原创 键盘事件(比如手机返回键返回)
1、在头文件声明void backCallback (EventKeyboard::KeyCode code, Event* event); 2、注册监听auto backListener = EventListenerKeyboard::create();//注册监听backListener->onKeyReleased = CC_CALLBACK_2(MainSceneLaye
2017-08-30 09:16:24 570
原创 定时器的使用
cocos2dx中有三种定时器:schedule,scheduleUpdate,scheduleOnce。功能分别是 每隔几秒调用自定义函数、调用系统默认的update()函数、只调用一次自定义函数1、scheduleUpdate加入当前节点后,程序会每帧都会自动执行一次默认的Update函数。(注:一定是Update函数哦,若想调用其他自己命名的函数则使用schedule)看例子
2017-08-30 09:16:05 216
原创 根据Json文件获取Widget
ui::Widget* addUi = dynamic_cast(cocostudio::GUIReader::getInstance()->widgetFromJsonFile(uiName));addChild(m_pWidget);2、根据名称UI设置的名字获取控件ui::Widget* pBtnReconnect = ui::Helper::seekWidgetByName(a
2017-08-30 09:15:54 312
原创 当Menu加入多个MenuItem时,怎么加入?
方式1:普遍方法创建多个MenuItemSprite(MenuItemLabel等等)对象。例如:MenuItemSprite* Item_ReC1 = MenuItemSprite::create(normal_ReC, press_ReC, NULL, CC_CALLBACK_1(GameControlLayer::menuCallBack, this));MenuItemSpri
2017-08-30 09:15:47 409
原创 cocos2dx继承关系
直接继承Ref的有哪些Animation、AnimationCache、Action、Node、SpriteFrame、SpriteFrameCache、Texture2D、Director、Event、EventDispatcher、EventListener、Scheduler、Touch、HttpRequest、HttpResponse、Widget/************
2017-08-30 09:15:27 1077
原创 CC_SYNTHESIZE和CC_SYNTHESIZE_READONLY的用法
CC_SYNTHESIZE(varType, varName, funName)这个宏是用来定义变量varName,其类型为varType,并生成其get/set方法,分别为:getfunName() 和setfunName(varType var) 。CC_SYNTHESIZE_READONLY(varType, varName, funName)声明一个成员变量以及getfunNa
2017-08-30 09:15:19 1492
原创 Cocos2d-JS中ctor和Cocos2d-x中init的作用
ctor构造函数:ctor构造函数new一个对象的时候调用,意思就是ctor构造函数new对象后自动调用,init在cocos2dx里面是静态函数create()方式创建对象自动调用。
2017-08-30 09:15:13 2892
原创 Cocos2dx如何把三个Node节点或者控件放在某个节点/控件中间位置?
1、先求出三个Node节点或者控件所占的宽度2、求出三个Node节点或者控件addchild的父类的中间位置3、设第一个节点左对齐,坐标为父类中间的位置-三个Node节点或者控件所占的宽度/24、设置第二个位置左对齐,坐标为第一个节点的坐标加上第一个节点坐标的宽度5、设置第三个位置左对齐,坐标为第二个节点的坐标加上第二个节点坐标的宽度例如三个控件 --宝石图标
2017-08-30 09:15:05 1163
原创 常用的一些宏定义
①、定义图片文件#define X_IMAGE(name, x) #name#x#define IMAGE(name) X_IMAGE(name,.png)如何使用呢(比如HelloWorld.png)auto sp = Sprite::createWithSpriteFrameName(IMAGE(HelloWorld));sp->setPosition(1,2);
2017-08-29 09:21:13 243
原创 cocos2d-x不是类名或结构名问题
解决方案:视图->解决方案下面的工程->右键属性->配置属性->C/C++->常规->附加包含目录->添加一个$(EngineRoot)就行了
2017-08-29 09:21:05 1848
原创 Cocos2dx常用的一些宏定义和头文件
1、USING_NS_CC; 相对应于using namespace cocos2d;域名操作符(命名空间)2、#include”cocos2d.h” cocos的头文件3、平台 #define CC_PLATFORM_IOS 1#define CC_PLATFORM_ANDROID 2#define CC_PLATFOR
2017-08-29 09:20:57 1178
原创 防止头文件被多次编译的写法有两种
1、#pragma once2、#ifndef __BLUETOOTH_H__ #define __BLUETOOTH_H__......... #endif67、注释整个文件的方法在头文件中使用#if defined(HAVE_BULE_MODE) && (HAVE_BULE_MODE > 0)//HAVE_BULE_MODE在项目属性中的预处理器定义....
2017-08-29 09:20:34 391
原创 lua函数.和:的使用
function GameScene:createLayerFarm()--类函数,只有当前文件可以调用endfunction GameScene.createLayerFarm()--静态函数,当前文件和文件都可以调用end
2017-08-29 09:20:25 219
原创 type的使用
print(type("Hello Lua")) --stringprint(type(100)) --numberprint(type(100.0)) --numberprint(type(true)) --booleanprint(type(print)) --functionprint(type(nil)) --nilprint(type({x = 10, y
2017-08-29 09:20:18 230
原创 tostring/tonumber的使用
local found = falseprint(tostring(found)) --输出"false"local num1 = 10local num2 = 10.0local num3 = 10.01print(tostring(num1)) --输出 "10"
2017-08-29 09:20:12 2016
原创 +、-、*、/、%的使用
local intResult = 1 + 2print(intResult) --3intResult = intResult - 1print(intResult) --2intResult = intResult * 2print(intResult) --4intResult = intResult / 2print(intResult)
2017-08-29 09:20:05 2521
原创 ==、~=、>、<、<=的使用
local value1 = 1local value2 = 2if value1 == value2 then print("value1 == value2")endif value1 ~= value2 then print("value1 ~= value2")endif value1 > value2 then
2017-08-29 09:19:59 1047
原创 or、and的使用
local i = 0local a = 10local b = 9if (a > b) or (i == 1) then print("或运算为 真") --else print("或运算为 假")endprint("i = " .. i) -- i = 0i = 0if (a print("与运算为 真")else
2017-08-29 09:19:53 324
原创 if elseif的使用
local score = 95print('------ if结构示例-------')if score >= 85 then print("您真优秀!")endif score print("您需要加倍努力!")endif score >= 60 and score print("您的成绩还可以,仍需继续努力!")end
2017-08-28 09:05:37 338
原创 while的使用
print("---- while ----")local i = 0while i * i i = i + 1endprint(i .. " * " .. i .. " = " .. i*i) --317 * 317 = 100489print("---- while ----")local i = 0while i * i i = i
2017-08-28 09:05:31 192
原创 for的使用
local iprint("n n*n")print("---------")for i = 1, -10, -1 do print(i .. " " .. i * i)end--------table的使用-------------local numbers = {106, 22, 30, 48, 56, 60, 70, 80, 90, 109
2017-08-28 09:05:26 326
原创 string的操作
local s = "Hello Lua"local sub1 = string.sub(s,1,3)print(sub1) --Hellocal sub2 = string.sub(s,2,-2)print(sub2) --ello Lu------------------------------------------------local s
2017-08-28 09:05:20 324
原创 function的使用
--带一个返回值的函数function rectangleArea(width, height) local area = width * height return areaendprint("320x480的长方形的面积:" .. rectangleArea(32, 64)) --320x480的长方形的面积:2048--定义计算长方形面积和周长函数
2017-08-28 09:05:14 505
原创 打印日志
print("123") local cclog = function (...)print(string.format(···))endcclog(123)
2017-08-28 09:05:00 188
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人