一年之前学的cocos2dx,那时候还是用C++编写的。...方向又改变了,还是回到之前的cocos2dx开发,但用的不是C++,而是lua脚本语言来开发,对我而言又是差点儿是从新開始。既来之则安之,在接触了那么多方向之后,是该选择一个确定的研究方向深入下去。...效果图 cocos2dx lua项目。lua脚本放在Resources文件夹下。也就是说lua脚本也像图片。...这也是lua开发cocos2dx的一大长处。...menu菜单 scene:addChild(createLayerMenu()) --加入自己绘制的图标和文字层 scene:addChild(layer) --执行场景
所以我们创建一个文本能够使用这种代码, function MyScene:ctor() local labelBMFont = ui.newBMFontLabel({ text = "Hello Cocos2dx...font = "futura-48.fnt", align = ui.TEXT_ALIGN_CENTER, x = display.cx, y = display.cy }) self:addChild...= ccc3(255, 255, 0), align = ui.TEXT_ALIGN_CENTER, x = display.cx, y = display.cy }) self:addChild...写个效果出来看看 local labelTTF = ui.newTTFLabelWithOutline({ text = "Hello Cocos2dx", size = 50, color...ui.TEXT_ALIGN_CENTER, x = display.cx, y = display.cy, outlineColor = ccc3(255, 255, 0) }) self:addChild
在手机游戏的开发中,滚动是一项非常重要的操作,而cocos2dx中使用的最广泛的就属于TableView了,不过由于cocos2dx的接口比较晦涩,所以需要一个熟悉的过程。..._skillView:setDelegate() skill_bg:addChild(self....setAnchorPoint(cc.p(0, 0)) sprite1:setPosition(cc.p(0, 0)) sprite1:setTag(1) cell:addChild...setAnchorPoint(cc.p(0, 0)) sprite2:setPosition(cc.p(0, 0)) sprite2:setTag(2) cell:addChild...numberOfCellsInTableView返回的个数和TableView创建的cell数量通常是不一样的,这是因为cocos2dx设计上为了节省资源,创建的cell数量 = tabview的高度
如果之前未将 /cocos2d-x-2.2/cocos2dx/platform/android/java 导入,在这里要导入。...在项目上右击,run as->android application 一切顺利的话工程就创建好了,如果没法运行,检查cocos2dx是否配置好。...static CCParallaxNodeExtras * node(); // Facility method (it’s expected to have it soon in COCOS2DX...KMAXDIFFY 0.2 #define KMAXDIFFX 0.1 double rollingX = 0.0; double rollingY = 0.0; // Cocos2DX...include $(COCOS_ROOT)/cocos2dx/proj.linux/cocos2dx.mk SHAREDLIBS += -lcocos2d -lcocosdenshion
cocos2dx tolua传递参数分析: tolua_Cocos2d_CCNode_addChild00 == void CCNode::addChild(CCNode *child) tolua_Cocos2d_CCNode_addChild01...== void CCNode::addChild(CCNode *child, int zOrder) tolua_Cocos2d_CCNode_addChild02 == void CCNode...::addChild(CCNode *child, int zOrder, int tag) 上面是使用tolua把C++转到lua。...我们这里分析一下最后一个:/* method: addChild of class CCNode */#ifndef TOLUA_DISABLE_tolua_Cocos2d_CCNode_addChild02static...加到了middleBg self->addChild(child,zOrder,tag); } } return 0;tolua_lerror: return tolua_Cocos2d_CCNode_addChild01
Scene* Piano::createScene() { Scene* scene = Scene::create(); Piano* layer = Piano::create(); scene->addChild...size.height / 360); auto menu1 = Menu::create(); menu1->setAnchorPoint(Vec2(0, 0));//锚点改为左下角 menu1->addChild...(button1); menu1->setPosition((1-1)*size.width/7,0); addChild(menu1); CocosDenshion::SimpleAudioEngine...size.height / 360); auto menu2 = Menu::create(); menu2->setAnchorPoint(Vec2(0, 0));//锚点改为左下角 menu2->addChild...(button7); menu7->setPosition((7 - 1)*size.width / 7, 0); addChild(menu7); return true; } void Piano
cocos2dx也提供了一个基础功能类AssetsManager,但是不太完善,只支持单包下载,版本控制基本没有。因此我决定在AssetsManager的基础上扩展一下这个功能。 ..._labelNotice:setPosition(cc.p(winSize.width / 2, winSize.height / 2)) layer:addChild(UpdateLayer....(logo1) layer:addChild(logo2) layer:addChild(logo3) sceneGame:addChild(layer) cc.Director:getInstance...---------------------") end xpcall(update, __G__TRACKBACK__) 最后说明一点,需要把下载解压的目录加到文件搜索的最前面,保证cocos2dx...cocos2dx自动更新源码
最近准备做一个聊天系统,开始准备使用cocos2dx的UIRichText控件来显示聊天内容,结果在使用的时候才发现,cocos2dx的RichText功能非常有限,完全不具备实现聊天的功能...cocos2dx只实现了基础的1和2功能,所以考虑之后还是决定自己写一个RichText控件。UIRichText的框架还是不错的,实现了文本分行显示的技术。在他的基础上很容易扩展。 ..._richChat:setPosition(cc.p(20, 70)) widget:addChild(self...._richBugle) widget:addChild(self.
简述: 这篇文章适合已经用cocos2dx开发过游戏(demo也可以)的人和对cocos2dx有兴趣的人阅读。...cocos2dx中除此之外,内存引用计数的操作(比如addchild,removechild,attain,release)也要在gl线程进行,不然会发生内存错误。...当选完城市后要求cocos2dx里面的界面刷新。...cocos2dx游戏是如何结束的? cocos2dx游戏退出的方法比较暴力。...,cocos2dx中是每祯都会回收引用计数为0的内存(前提是你把他们加进了自动回收池,即用cocos2dx提供的对象创建方法create),cocos2dx中还有个功能对解决内存问题非常实用,就是可以用
这两天最终闲了一下,就顺手又把quick捡起来又学了学,一直都认为quick比cocos2dx那套lua绑定要方便很多,今天试了下android返回键的监听,还是挺好弄的,所以就有了这篇。...--CCDirector:sharedDirector():endToLua() local javaClassName = "com/cocos2dx...javaMethodName) end end) self.touchLayer:setKeypadEnabled(true) self:addChild
(label); this->addChild(layerIcon); 代码分析: 背景创建: LayerColor::create(Color4B(230, 230, 0, 255), 100,...setString(…), setPosition(Vec2(60, 30)); 对于设置位置需要记住Label的锚点是在正中心,因此其坐标不应该设置为父节点的(0,0)处 添加子节点: addChild...updateBestScore() { if(_score < _bestScore) return ; setBestScore(_score); } 上面的代码很容易理解, 这里额外提一下Cocos2dx...(label); this->addChild(layerIcon); initScore(); }while(0); return true; } bool GameTool::initScore...(scoreLabel); this->addChild(scoreIcon); auto bestIcon = LayerColor::create(Color4B(186, 172, 159
auto item = MenuItemLabel::create(label); item->setContentSize(size); 对于set界面的绘制中,可以看到一条白色的线段,同样是调用cocos2dx...的API进行绘制,主要是DrawNode对象的相关方法 auto draw = DrawNode::create(); this->addChild(draw); draw->drawLine(Vec2...CC_CALLBACK_1 cocos2dx定义的宏,广泛应用于回调函数的处理中,其声明为: // new callbacks based on C++11 #define CC_CALLBACK... setLayer = SetMenu::create(); setLayer->setName("setlayer"); setLayer->setVisible(false); this->addChild...(bg); auto draw = DrawNode::create(); this->addChild(draw); //draw->drawLine(Vec2(10, 20), Vec2(50
GameLayer::createScene() { auto scene = Scene::create(); auto layer = GameLayer::create(); scene->addChild...ScoreBoard::createBoard(2048, 120, 90, "Game", Vec2(15, size.height-100),Color4B(2,168,209,255)); addChild...ScoreBoard::createBoard(0, 90, 90, "high", Vec2(150, size.height - 100), Color4B(209, 168, 168, 255)); addChild...{ cards[i][j] = CardSprite::createCard(0, 90, Vec2(90 * i + CARDBORDER / 2, 90 * j + 80)); addChild...(label); addChild(bg); return true; } int CardSprite::getNumber() { return number; } bool CardSprite
GamePopStar::createScene() { auto scene = Scene::create(); auto layer = GamePopStar::create(); scene->addChild...for (int h = 0; h < HEIGH; ++h) { stars[w][h] = StarSprite::createStar(rand() % 5 + 1, w, h); addChild...)); //star->setPosition(20 + 40 * x, 20 + 40 * y); star->setPosition(20 + 40 * x, 20 + 40 * 16); addChild
= Scene::create(); // 创建层对象 auto layer = HelloWorld::create(); // 把层放到场景里 scene->addChild...Menu::create(closeItem, NULL); //指定菜单的位置 设置显示的坐标位置 menu->setPosition(Vec2::ZERO); this->addChild...Vec2(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y)); //把图片精灵加入到层中 this->addChild...game_scene_close_event"); //_eventDispatcher->dispatchEvent(&customEndEvent); } 这样我们就得到一个能执行的HelloWord程序啦 因为cocos2dx...项目工程太大,只上传Classes一些cpp文件啦,你可以手动把代码加入到你的cocos2dx项目工程中。
今天说一说containerbase.addchild start_maven compiler plugin,希望能够帮助大家进步!!!
ui.TEXT_ALIGN_CENTER, listener = onClicked, x = display.cx, y = display.height*0.3, tag = 2 }) 和Cocos2dx...我们要addChild每个item,quick在这里把menu又一次封装,让其使用和c++的写法一样,这就方便非常多了。...local menu = ui.newMenu({item1, item2}) self:addChild(menu) 这样就加入完毕了,回调函数咱们还没说。我们再看下。...x = display.cx, y = display.cy, }) local menu = ui.newMenu({item1, item2, item3}) self:addChild
GamePlane::createScene() { auto scene = Scene::create(); auto layer = GamePlane::create(); scene->addChild...(bg[3]); addChild(layer); auto plane = PlaneSprite::createPlane(Point(180, 100)); plane->setTag(PLANE...); addChild(plane); for (int i = 0; i < BULLE; ++i) { bullets[i] = Bullet::createBullet(Point(0..., 660)); addChild(bullets[i]); } for (int i = 0; i < BULLE; ++i) { enemyBullet[i] = EnemyBullet...::createBullet(Point(0, 720)); addChild(enemyBullet[i]); } scheduleUpdate(); auto listener =
其实还可以用文本文件来解决中文乱码,就是字符串从xml文件或者json中读取(注意,文本需要是UTF-8编码),然后传值,这样不会出现乱码问题 使用标签 可以把标签理解为一个控件 image.png 此处的大家好和中间的COCOS2DX...图片就是标签 一种是COCOS2DX这样的,可以叫美工做张图片然后放上去就可以了,静态的 另外一种是”大家好”这样的动态文字 LabelTTF TTF基于系统字库 image.png //...visibleSize.height - label->getContentSize().height)); //记住设置位置和锚点,锚点没写就是默认的0.5,0.5 //把标签加入到层中 this->addChild...- label1->getContentSize().width / 2, visibleSize.height - label1-getContentSize().height)); this->addChild...label1->setPosition(Vec2(origin.x + visibleSize.width/2,origin.y + visibleSize.height - 100)); this->addChild
0:9)); addChild(chesses[i]); ++i; int flag = 0; for (int times = 0; times < 2; ++times,++flag...0:9)); addChild(chesses[i]); ++i; chesses[i] = Chess::createChess((TAG)tag, TYPE::XIANG, Vec2...0 : 9)); addChild(chesses[i]); ++i; chesses[i] = Chess::createChess((TAG)tag, TYPE::MA, Vec2...0 : 9)); addChild(chesses[i]); ++i; chesses[i] = Chess::createChess((TAG)tag, TYPE::CHE, Vec2...3:6)); addChild(chesses[i]); ++i; } } auto listener = EventListenerTouchOneByOne::create()
领取专属 10元无门槛券
手把手带您无忧上云