Cocos2d-x中LocalStrorage的使用
来源:互联网 发布:淘宝店忘记账号密码 编辑:程序博客网 时间:2024/06/05 15:02
环境说明:
cocos2d-x2.2.1
vs2010
SQLite Expert Professional 3.4.34.2256 (用于查看SQLite数据库文件)点击下载
LocalStorage调用示例
MyDB.h
#ifndef _MY_DB_#define _MY_DB_#include "cocos-ext.h"#include "LocalStorage/LocalStorage.h"USING_NS_CC_EXT;class DB{public:static void init();static void free();static void insert();static void del();static void update();static void query();};#endifMyDB.cpp
#include "MyDB.h"void DB::init(){//初始化一个数据库,会创建一张data表,数据库文件会生成在Resource目录下localStorageInit("my.db");}void DB::free(){//释放资源localStorageFree();}void DB::insert(){//插入数据到data表localStorageSetItem("a","1");localStorageSetItem("b","2");localStorageSetItem("c","3");}void DB::del(){//删除数据localStorageRemoveItem("c");}void DB::update(){//更新数据localStorageSetItem("a","2");}void DB::query(){//查询数据CCLOG("query result : %s" ,localStorageGetItem("a"));}
测试
1.创建一个Cocos2d-x的cpp工程
2.首先在HelloWorldScene.cpp中 #include "MyDB.h"
3.修改HelloWorldScene.cpp中的init方法实现(添加按钮,点击回调分别对DB执行不同的操作)
bool HelloWorld::init() if ( !CCLayer::init() ) { return false; } CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();CCMenuItemImage *pCloseItem = CCMenuItemImage::create( "CloseNormal.png", "CloseSelected.png", this, menu_selector(HelloWorld::menuCloseCallback)); pCloseItem->setPosition(ccp(origin.x + visibleSize.width - pCloseItem->getContentSize().width/2 , origin.y + pCloseItem->getContentSize().height/2)); CCLabelTTF* pLabel = CCLabelTTF::create("Hello World", "Arial", 24); pLabel->setPosition(ccp(origin.x + visibleSize.width/2, origin.y + visibleSize.height - pLabel->getContentSize().height)); this->addChild(pLabel, 1); CCSprite* pSprite = CCSprite::create("HelloWorld.png"); pSprite->setPosition(ccp(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y)); this->addChild(pSprite, 0); //创建几个按钮,回调方法分别对DB执行不同的操作//初始化CCMenuItemFont* pInitItem = CCMenuItemFont::create("Init", this, menu_selector(HelloWorld::initDb));pInitItem->setPosition(ccp(origin.x + 100, visibleSize.height - 100));//增CCMenuItemFont* pInsertItem = CCMenuItemFont::create("Insert", this, menu_selector(HelloWorld::insertDb));pInsertItem->setPosition(ccp(origin.x + 200, visibleSize.height - 100));//删CCMenuItemFont* pDelItem = CCMenuItemFont::create("Delete", this, menu_selector(HelloWorld::delDb));pDelItem->setPosition(ccp(origin.x + 100, visibleSize.height - 200));//改CCMenuItemFont* pUpdateItem = CCMenuItemFont::create("Update", this, menu_selector(HelloWorld::updateDb));pUpdateItem->setPosition(ccp(origin.x + 200, visibleSize.height - 200));//查CCMenuItemFont* pQueryItem = CCMenuItemFont::create("Query", this, menu_selector(HelloWorld::queryDb));pQueryItem->setPosition(ccp(origin.x + 100, visibleSize.height - 300));//释放资源CCMenuItemFont* pFreeItem = CCMenuItemFont::create("Free", this, menu_selector(HelloWorld::freeDb));pFreeItem->setPosition(ccp(origin.x + 200, visibleSize.height - 300));// create menu, it's an autorelease objectCCMenu* pMenu = CCMenu::create(pCloseItem, pInitItem, pInsertItem, pDelItem, pUpdateItem, pQueryItem, pFreeItem, NULL);pMenu->setPosition(CCPointZero);this->addChild(pMenu, 1); return true;}4.在HelloWorldScene.h中增加菜单回调的方法声明
void initDb(CCObject* psender);void freeDb(CCObject* psender);void insertDb(CCObject* psender);void delDb(CCObject* psender);void updateDb(CCObject* psender);void queryDb(CCObject* psender);5.在HelloWorldScene.cpp中实现菜单回调
void HelloWorld::initDb(CCObject* psender){DB::init();}void HelloWorld::freeDb(CCObject* psender){DB::free();}void HelloWorld::insertDb(CCObject* psender){DB::insert();}void HelloWorld::delDb(CCObject* psender){DB::del();}void HelloWorld::updateDb(CCObject* psender){DB::update();}void HelloWorld::queryDb(CCObject* psender){DB::query();}6.编译-运行,但是在编译时可能会遇到如下错误,原因是链接器没有找到sqlite的库
解决链接sqlite失败的问题
1.在cocos2d-x-2.2.1\external\sqlite3\libraries\win32目录下找到sqlite的动态库与静态库两个文件,把这两个文件拷贝到工程的Debug.win32目录下
2.在工程右键属性 — 配置属性 — 链接器 — 输入 — 附加依赖项 — 编辑,把sqlite3.lib添加到依赖项中
3.保存配置,重新编译工程,运行成功!
0 0
- Cocos2d-x中LocalStrorage的使用
- cocos2d-x中CCTableView的使用
- cocos2d-x中schedule的使用
- Cocos2d-x 中 CCNotificationCenter 的使用
- cocos2d-x中CCTableView的使用
- Cocos2d-x中CCUserDefault的使用
- Cocos2d-x中控件CCControlStepper的使用
- cocos2d-x中luajit的使用
- cocos2d-x中CCTableView的使用
- cocos2d-x中定时器的使用
- cocos2d-x中精灵的使用
- cocos2d-x中luajit的使用
- Cocos2d-x使用中遇到的问题
- Cocos2d-x中Socket的简单使用
- cocos2d-x 中JniHelper类的使用
- lua: cocos2d-x中luajit的使用
- cocos2d-x中luajit的使用
- cocos2d-x中shader的使用
- HDU 1254 (经典游戏)推箱子 BFS+dfs
- iOS 开发百问(3)
- jrebel使用
- Java项目打包工具安装失败解决方法
- android EditText的美化
- Cocos2d-x中LocalStrorage的使用
- 智能指针auto_ptr详解
- 【HDU 2993】MAX Average Problem
- 02-0. 整数四则运算(10)
- MongoVUE下实现MongoDB的Group分组查询
- 成为优秀程序员的十个有效方法
- 武汉大学企业总裁高级研修班59班现火热招生!
- 【奇怪的东西】【Scarky:发布你自己的OI/ACM题】
- Oracle的Trunc和round的区别