COCOS2D - 技术教程文章

【COCOS2DX-游戏开发之三四】cocos2dx 3.0 TableView特殊用法:滚动时不能选择等等【图】

cocos2dx 3.0版本TableView拍生自ScrollView,常用来做滚动列表,有几种特殊用法,不知道大家用到过没要求:1.滚动时不能选中TableCell,非滚动状态才能选中很简单,在TableView的delegate函数中,通过isTouchMoved()函数来判断void WeaponSelectLayer::tableCellUnhighlight(cocos2d::extension::TableView* table, cocos2d::extension::TableViewCell* cell) {if (table->isTouchMoved()) {return;}//TODO:Select item. } 要求2:...

cocos2d-x于android在call to OpenGL ES API with no current context

一、问题: 正在使用JNI离Java(Android)侧 打回来C++(Cocos2d-x)该函数返回消息。Cocos2d-x花掉了 看看 Eclipse的Log中。显示 有 call to OpenGL ES API with no current context (logged once per thread) 的错误二、解决方式: 经过查找资料了解到这个问题是由于Android在启动cocos2d-x的Thread时,没实用context的主的Thread,而是使用的OpenGL的Thread。 所以我们不能在主Thread去完毕 本应该是在co...

Cocos2d-x 3.0final 终结者系列教程08-绘图节点Node中的锚点和坐标系【图】

图片问答,(只要回答正确,锚点和坐标系就学会了)1.下图一共有几个填充为淡黄色的实心矩形? 选择:A,2个 B, 4个 C,1个 D,16个 答案,B,4个2.下图的4个实心矩形排列在几行几列?选择:A,1行1列 B,2行2列答案,B3。在每个实心矩形外侧都代表了屏幕,并标记了屏幕坐标系,和OpengGL坐标系,请问以下回答哪个正确?A,下图第一列是屏幕坐标系,左上角为0,0点,第二列是OpenGL坐标系,左下角为(0,0)点B, 文章喜欢马伊琍...

cocos2d-x-LuaProxy学习日志(9) -- 移植android(cocos2d-x 2.1.4)【图】

移植android1.搭配移植环境 mac平台: http://blog.csdn.net/rexuefengye/article/details/15813497 windows平台: http://blog.csdn.net/rexuefengye/article/details/123760372.移植项目文件、资源 1)把Classes 和 Resources 文件拷贝到我们 create 出来的项目 cocosbuilder文件夹中,如图: 注:因本人在xcode进行开发,资源目录略有不同,不过,可以把需要的资源统一放在create项目的Resources文件中,如图:3.修改...

cocos2d-js 3.0 屏幕适配方案 分辨率适应【代码】

首先介绍一个api和相应的参数:cc.view.setDesignResolutionSize(1024, 768, cc.ResolutionPolicy.FIXED_WIDTH);这里设置游戏制作的目标尺寸和显示的模式。模式包括:cc.ResolutionPolicy = {// The entire application is visible in the specified area without trying to preserve the original aspect ratio.// Distortion can occur, and the application may appear stretched or compressed.EXACT_FIT:0,// The entire appl...

Cocos2dx中响应Android的Back(返回键)与Menu(菜单)事件

步骤如下:1.初始化的时候开启: this->setKeypadEnabled(true);2. 在需要响应的.h 中添加如下两个虚函数:12virtualvoidkeyBackClicked();//Android 返回键virtualvoidkeyMenuClicked();//Android 菜单键3. 在.cpp类中实现如上两个函数即可,如下,World是个Layer1234567voidWorld::keyBackClicked(){ CCLog("Android- KeyBackClicked!");} voidWorld::keyMenuClicked(){ CCLog("Android- keyMenuClicked!");} 原文:http...

quick-cocos2d-x 学习系列之十三 触摸

quick-cocos2d-x 学习系列之十三 触摸 现在智能机基本都是触摸屏,除了键盘爱好者们耍键盘。我们要通过这小小的触摸屏上完成整个游戏逻辑的控制,需要对这巴掌大地方进行详细控制了。 1. 单点触摸测试创建精灵函数function createTouchableSprite(p) local sprite = display.newScale9Sprite(p.image) sprite:setContentSize(p.size) local cs = sprite:getContentSize() local label = cc.ui.UILabel.new({ ...

第一个Cocos2d-x Lua游戏【图】

第一个Cocos2d-x Lua游戏我们的编写的第一个Cocos2d-x Lua程序,命名为HelloLua,从该工程开始学习其它的内容。创建工程我们创建Cocos2d-x Lua工程可以通过Cocos2d-x提供的命令工具cocos实现,但这种方式不能与Cocos Code IDE集成开发工具很好地集成,不便于程序编写和调试。由于Cocos Code IDE工具是Cocos2d-x开发的专门为Cocos2d-JS和Cocos2d-x Lua开发设计的,因此使用Cocos Code IDE工具很方便创建Cocos2d-x Lua工程。首先我们...

关于Cocos2d-x中使用完Blink动作后精灵突然消失的问题的解决

精灵使用Blink 执行完动作之后,消失不见了,原因是有可能出现精灵刚好到透明的那部分,所以最好在精灵执行完动作之后,让精灵setvisible显示出来。 解决方式:格式1Blink * hurt = Blink::create(0.5, 5);写一个回调函数,等到执行完Blink 动作后调用这个回调函数 CallFunc *call2 = CallFunc::create([this](){   this->setVisible(true); }); this->runAction(Sequence::create(hurt,call2, NULL)); 格式2void Her...

Learning Cocos2d-x for WP8(5)——详解Menu菜单【代码】【图】

原文:Learning Cocos2d-x for WP8(5)——详解Menu菜单C#(wp7)兄弟篇Learning Cocos2d-x for XNA(5)——详解Menu菜单菜单是游戏必不可少的元素,菜单的实现,无非就是文字或者图片。CCLabel元素更多的时候是实现说明的作用,用于导航性的菜单,更多时候是用CCMenu。主要的几个Menu相关的元素的继承关系。工程文件:MenuTest.h和MenuTest.cppCCMenuItemFont核心语句 1//CCMenuItemFont 2 CCMenuItemFont::setFontName("Ameri...

MAC下Android Studio 1.4编译构建Cocos2d-x 3.9之Android版本程序【图】

本文记载的是一个HELLO WORLD级别的入门程序在如题所示环境下的编译构建过程。 说明:如今安装Android Studio 1.4,它会自动安装Gradle 2.4(早期却不是这样),但遗憾的是没有下载对应的.zip文件。所以,后面在命令行编译时还需要再次下载这个文件。另外,在MAC环境下下载安装Cocos2d-x 3.9和Android Studio 1.4的步骤,在此省略描述。环境变量配置终端工具下,运行如下命令:vim ~/.bash_profile输入如下内容:ANT_ROOT=‘/...

cocos2dx中的三种基本的数据类型

1.cocos2dx中提供了三种基本的数据类型:CCString(字符串),CCArray(数组),CCDictionary(数据字典(哈希的功能))2.CCString的用法class CCString : public CCObject,可见CCString本质是一个CCObject,因此支持create方法和其他CCObject的特性a.CCString的创建:CCString *str=CCString("abc");CCString *str=CCString::create("1234");//CCObject的特性CCString *str=CCString::createwithformat("id%d",3);//格式化初始化static CCStr...

cocos2d-x之Vector与map

bool HelloWorld::init(){ if ( !Layer::init() ) { return false; } Size visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); Vector<Label *> vec; auto label1=Label::create(); auto label2=Label::create(); label1->setString("Label 1"); label2->setString("Label 2"); label1->setSystemFontSize(...

cocos2d-js添加360广告联盟插屏(通过jsb反射机制)【代码】

1、添加demo里的libs里的jar包2、修改AndroidManifest.xml文件添加权限:<uses-permission android:name="android.permission.READ_PHONE_STATE"/><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/><uses-permission android:name="android.permission.GET_TASKS"/>添加声明:<service android:enabled="true" android:exported="false" android:name="com.qhad.ads.sdk.service.QhAdService"/><activit...

cocos2dx tolua传递参数分析

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 CC...

Cocos2D实现上下滚动式状态窗体【代码】【图】

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 假设认为写的不好请多提意见,假设认为不错请多多支持点赞.谢谢! hopy ;)有时候要显示的内容太多,我们无法在iOS设备的小屏幕上显示出来,这时候我们能够将内容划分为多个子窗体,依次显示相应的窗体.在SpritBuilder中新建一个类型为Node的CCB文件,调整样式例如以下:我这里划分了2个子窗体,用中间的箭头切割.注意以下的子窗体中的内容是动态获取的,所以这里留空,可是要保留一个引...

Cocos2dx-lua制作遮罩

cocos2dx的资源文件有两种存在方式(只代表我在实战项目中用到的):单个图片文件和plist文件因项目原因一个项目中两种资源形式并存,所以在生成CCSprite时,涉及两种构建的方式,构建ccsprite的方式不同,对应生成遮罩的方法也不同。Cocos2dx-lua 中提供了生成遮罩的方法,但是在具体的项目中,未必能满足项目的需求。我所参于的项目是模拟经营类的,需要根据不同图片,动态生成遮罩,所以使用display.newMaskedSprite(__mask, __...

Cocos2d-x v3.1 核心类Director,Scene,Layer和Sprite(六)【图】

Cocos2d-x v3.1 核心类Director,Scene,Layer和Sprite(六) Scene就像一个舞台一样在上面会摆放各种的元素,有的是固定的比如说布景,道具都是固定不动的,但有的元素也是可以移动的比如说男女主角。在游戏世界里也是如此,在一个游戏场景中我们会放置不同的元素来点缀我们的场景。当然在游戏世界里,也不能完全跟现实世界相同,为了方便元素的控制,我们将不同的元素放在不同的层,这样也方便管理。在一个场景中我们可以放...

iOS_31_cocos2d_粒子系统ParticleSystem【图】

最终效果图:ParticleSystem是基类,ParticleSystem的唯一一个直接子类是:ParticleSystemQuadParticleSystemQuad下面又有n多个子类当需要自定义粒子系统时,用到的是ParticleSystemQuad,参数是:第3方软件生成的plist下面是的粒子系统的继承结构图下面介绍一下【Particle Designer】生成两个文件,一个小纹理,一个plist其中plist文件结构如下:自定义粒子特效,使用上面生成的plist文件cocos2d v3版本中,很重要的一点就是:CCParticleSyste...

COCOS2D-X之使用CURL下载图片的一个简单Demo

#include"curl/curl.h" #pragma comment(lib,"libcurl_imp.lib") bool HelloWorld::init() {CCLayer::init(); CURL *pCurl;CURLcode nResCode;pCurl = curl_easy_init();//初始化CURL取得初始化成功后的CURL指针if (pCurl != NULL) {FILE *pFile;pFile = fopen("XXX.jpg", "wb");curl_easy_setopt(pCurl,CURLOPT_URL,"http://ww1.sinaimg.cn/large/7f32a2c8jw1e8lyw03zpbj20c8d1ynpd.jpg");if(pFile != NULL)curl_easy_setopt(pC...

cocos2d-x 血泪史(-4) cocos2d-x 中最近遇到的那些坑【代码】【图】

好吧,首先第一个坑:[坑一]CCMoveTo 这个action,看名字就是在指定时间内移动到某个点,用起来当然是像这样:auto moveAction = CCMoveTo::create(1.f, ccp(200, 300)); sprite->runAction(moveAction);看起来没什么问题,运行的时候那个sprite 确实也在1 秒内移动到200,300 了。那么这样呢:for(int i = 0; i < 2; i++) {auto moveAction = CCMoveTo::create(1.f, ccp(200, 300));sprite->runAction(moveAction); }猜猜看sprite...

【cocos2d-js官方文档】十四、cc.spriteFrameCache 改造说明【代码】

统一引擎内部创建SpriteFrame的数据结构 将Plist的解析工作转移到了cc._plistLoader中去,对SAXParser进行了改造。 统一了引擎创建SpriteFrame的数据结构:{_inited : true,frames : {"a_frame_0.png" : {rect : {x : 0, y : 0, width : 1, height : 1},rotated : false,offset : {x : 0, y : 0},size : {width : 1, height : 1}aliases : ["a_f_0"]}},meta : {image : "a.png"} }引擎在创建SpriteFrame的时候,读取了plist配置文件...

cocos2d-x项目101次相遇:使用触摸事件移动 精灵【代码】

cocos2d-x 101次相遇 / 目录 1 安装和环境搭建 -xcode 2 Scenes , Director, Layers, Sprites3 建立图片菜单 4 在HelloWorld上--建立新场景 5 增加一个精灵sprite 5.1 缩小sprite并使之完整显示6 action ,移动sprite 7 3.0 的点击事件,CCTouchDelegate已经停用了8 使用触摸事件移动 精灵void CMyFirstScene::onTouchMoved(Touch* touch, Event* event) {CCLOG("TouchMoved");Point p = touch->getLocatio...

Cocos2dx3.2 Crazy Tetris 游戏输入(键盘事件,重力事件,触摸屏事件)

游戏基本的逻辑功能之前已经完成,之后的问题就是如何去控制游戏中的方块。在电脑上,很显然就是使用键盘最为直接,而在手机上,考虑上要让操作方便,这里采用的是用重力感应控制左右移动,点击屏幕进行方块的旋转。下面,就是加入这些事件的方法:加入键盘事件,需要重写方法:virtual void onKeyPressed(cocos2d::EventKeyboard::KeyCode keyCode, cocos2d::Event* event); virtual void onKeyReleased(cocos2d::EventKeyboard::...

Cocos2d-x实例:设置背景音乐与音效- AppDelegate实现【图】

为了进一步了解背景音乐和音效播放的,我们通过一个实例给大家介绍一下。如下图所示有两个场景:HelloWorld和Setting。在HelloWorld场景点击“游戏设置”菜单可以切换到Setting场景,在Setting场景中可以设置是否播放背景音乐和音效,设置完成后点击“OK”菜单可以返回到HelloWorld场景。 我们需要在AppDelegate中实现背景音乐播放暂停与继续函数,AppDelegate.h文件代码如下:#ifndef _APP_DELEGATE_H_ #define _APP_DELEGATE_...

总结关于lua, c , android,在 cocos2d-x 之间的调用方法【代码】【图】

把这几天瞎搞的东西总结一下. 环境配置什么的也比较烦. ndk.java.在cocos2dx的环境中都有配置.参1很基础很基础很基础的环境配置. 1.android与C 之间的调用 android通过JNI 来调用C(不带C++玩.extern "C"), 1.1android调用C  如果要在Eclipse中用C/C++编译要在工程上选android tools 的add native support,来编译c/c++.对于cocos2dx的理论上已经设置好了. 当然如果没有. 那还是用cocos compile来编吧. 自己做的darkc项目的工程如果...

Cocos2d-JS中使用CocosStudio资源——设置界面【代码】【图】

在本篇博客中,我们将通过一个在Cocos2d-JS中使用从CocosStudio导出的设置界面资源的例子,来简要介绍以下内容:Slider控件的使用。一、CocosStudio准备第一步:从官网下载相应的示例,setting。效果图如下:第二步:修改其中的一些控件的名称,方便寻找获取,如:将Music那个滑动条的控件名字改为musicSlider,从而方便查找。 类似的修改还可以有:Continue按钮,Sound滑动条等。第三步:发布资源。注意发布设置中应该将数据格式改...

Cocos2d-x教程(35)-三维拾取Ray-AABB碰撞检测算法【图】

欢迎加入Cocos2d-x 交流群:193411763转载时请注明原文出处 :http://blog.csdn.net/u012945598/article/details/39927911-----------------------------------------------------------------------------------------------------------------------------------------------------------1.三维拾取技术 在3D游戏中通常会有这样的需求,用户可以选取3D世界中的某些物体进行如拖拽等操作,这时便需要程序通过将二维屏幕上的点...

cocos2d-lua 3.5 ios搭建步骤

xcode搭建cocos2d-lua是最简单的,不用 配置一系列环境变量,只把xcode安装好就可以步骤一:去官网下载quick-3.5,然后打开命令行工具步骤二:cd进入/Users/song/Desktop/cocos2dStudy/quick-3.5/tools/cocos2d-console/bin/,然后运行下面的命令cocos.py new HelloCC -p com.wwj.hellocc -l lua -d /Users/song/Desktop/cocos2dStudy/quick-3.5,然后即可生成新项目,进入到HelloCC的/Users/song/Desktop/cocos2dStudy/quick-3.5/...

cocos2dx for lua 加密图片

图片加密的方法有很多种,在cocos2dx中,经常会使用TexturePacker来加密图片,方法如下:打开TexturePacker,点击Add Sprite添加图片,在output栏下的Texture format选择pvr.gz格式, 点击Content protection加密按钮,创建加密密钥,点击create new key来创建一个新的密钥,clear/disable删除密钥,save as global key可以将当前密钥保存成全局密钥,以后可以使用,use global key 可以使用save as global key保存的全局密钥。 点...