COCOS2D - 技术教程文章

cocos2dX 事件之触摸事件和触摸事件集合【图】

今天, 我们来学习cocos2dX里面的触摸事件与触摸事件合集, 现在的手机游戏交互基本上都是通过触摸交互的, 所以大家明白这节的重要性了吧, 本节篇幅比较大, 所以我就不扯闲话了先来看看常用函数:触摸事件:addTargeteDelegate( 谁使用, 优先级, 是否拦截触摸消息);//注册单点触摸virtual bool ccTouchBegan(CCTouch * touch,CCEvent * event);//触摸开始virtual void ccTouchMoved(CCTouch * touch,CCEvent * event);//触摸滑动virtua...

[寒江孤叶丶的Cocos2d-x之旅_33]RichTextEx一款通过HTML标签控制文字样式的富文本控件【代码】

RichTextEx一款通过HTML标签控制文字样式的富文本控件原创文章,欢迎转载。转载请注明:文章来自[寒江孤叶丶的Cocos2d-x之旅系列]博客地址:http://blog.csdn.net/qq446569365下载地址Github链接这个是干什么的将例如以下文字内容 "<#F37C2A><font Helvetica><30>【世】<#3AB5B3><underLine true>寒江孤叶<underLine false><#F8F4D7>:HelloWorld" 生成如图所看到的样式的RichText(支持图片以及闪烁、旋转和其它自己定义的效果、控件...

cocos2dx安卓客户端接入移动MM付费SDK【代码】【图】

C++和java的调用需要使用JNI,这里使用cocos2dx提供的JniHelper就可以满足要求。以游戏中购买炸弹道具为例流程图: 先按照文档进行配置;在Java工程中新建一个包"IAP",作为C++与mmsdk交互的中间层;Handler和Listener可以使用Demo自带的两个类,将Demo2.4.2中的IAPHandler.java和IAPListener.java复制到IAP中;在package IAP下新建类IAPJni 1package IAP;2 3import com.test.iap.testiap;4 5import android.content.Context;6imp...

cocos2d-x3.2中的getVisibleSize,getContentSize,boundingBox,getContentSizeInPixels,convertToGL,convertTo

Node类的setPosition,getPosition函数如果是一个Node的Child则获取的坐标就是该Node的本地坐标另一个关键问题就是在cocos2d-x里就是各种对象的大小问题。因为在cocos2d-x里Node对象有缩放的方法setScaleX和setScaleY。所以在获取对象大小的时候必须根据情况明确指定获取对象原始大小,还是缩放后的大小。当然cocos2d-x里提供了对应函数来完成这些操作:getContentSize函数来获得节点原始的大小。只是逻辑尺寸,不是像素。返回CGSi...

Cocos2d-X开发一个简单的小游戏【图】

学了这么久Cocos2d-X,今天终于可以做出一个简单的小游戏了,游戏非常简单,通过菜单项控制精灵运动在做游戏前,先学一个新概念调度器(scheduler):Cocos2d-x调度器为游戏提供定时事件和定时调用服务。所有Node对象都知道如何调度和取消调度事件,使用调度器有几个好处:每当Node不再可见或已从场景中移除时,调度器会停止。Cocos2d-x暂停时,调度器也会停止。当Cocos2d-x重新开始时,调度器也会自动继续启动。Cocos2d-x封装了一个...

cocos2dx游戏--三国关羽传【角色扮演类】Demo的制作及实现

项目地址:https://github.com/moonlightpoet/GuanYuZhuan主要类及其对应效果:MainScene:菜单界面(用于选择不同剧本)StoryScene:故事界面(对应于不同的剧本)FightScene:战斗界面(对应对战斗的界面,不过做的很简略,基本上就是主人公(关羽)打一下人后敌人就死了,然后进入了胜利界面)SucceedScene:胜利界面(用于显示胜利,并返回菜单界面) 原文:http://www.cnblogs.com/moonlightpoet/p/5578936.html

cocos2d-x3.0 + vs2012环境配置【图】

cocosd-x 3.0版本传说做了很多优化,性能有了很大提升,支持c++ 11,目录结构和类名也改了,取消了各种类的CC前缀,比如CCSprite变成了Sprite,支持CocoStudio UI编辑器等。总之,比以前的版本效率要好,也更好用了。很久没有玩cocos2d-x了,现在重新来温习一下配置3.0版本,现在最新的版本是cocos2d-x-3.0alpha1。 1. 下载安装vs2012(只安装支持c++的部分就好),因为cocos2d-x 3.0使用了c++ 11特性,vs2010不支持。 2. ...

cocos2dx 开启控制台【代码】【图】

1BOOL WINAPI HandlerRoutine(DWORD dwCtrlType)2{3if (dwCtrlType == CTRL_CLOSE_EVENT)4 {5 FreeConsole();6 }7return TRUE;8}910//开启控制台11AllocConsole(); 12SetConsoleCtrlHandler(HandlerRoutine, TRUE); 13// freopen("CONOUT$", "w+t", stdout); 14// freopen("CONIN$", "r+t", stdin);15 freopen("CONIN$", "r", stdin); 16 freopen("CONOUT$", "w", stdout); 17 freopen("CONOUT$", "w", stderr);View...

Cocos2d-X中的ProgressTimer【图】

??ProgressTimer即进度条,进度条在游戏开发中运用非常广泛,例如在一些格斗游戏中,显示血液的变化,还有游戏加载进度,等都离不开进度条Cocos2d-X中使用CCProgressTimer创建进度条先从一个简单的例子使用ProgressTimer屏蔽部分精灵首先在工程目录下的Resource文件夹中放一张图片然后创建一个ProgressTimer类在ProgressTimer.h中添加下面的代码#ifndef __ProgressTimer_H__ #define __ProgressTimer_H__#include "cocos2d.h" USIN...

Cocos2d-x 脚本语言Lua基本数据结构-表(table)【图】

Cocos2d-x 脚本语言Lua基本数据结构-表(table)table是Lua中唯一的数据结构,其他语言所提供的数据结构,如:arrays、records、lists、queues、sets等,Lua都是通过table来实现,并且在lua中table很好的实现了这些数据结构。--摘自:《Programming in Lua》看以下代码,可以很清晰的明白Lua中表的使用:-- Lua中的表,table Config = {hello="Hello Lua",world="World"} -- 赋值方式1,以键=值的方式初始化 Config.words = "Hello" ...

cocos2d-X学习之主要类介绍:场景(CCScene)【图】

场景(CCScene)类结构:CCScene主要有以下两个函数:bool init () //初始化函数static CCScene * node (void) //生CCScene作为场景类,为何只有这两个函数而没有其他方法呢,因为目前在CCScene承担的是一个容器的功能,游戏开发时需要渲染的对象反正CCScene里面统一管理,包括创建、销毁和场景切换等,而且从其类的结构图可看出,其直接继承了CCNode类,下章我们会具体介绍CCNode类原文:http://www.cnblogs.com/fwycmengsoft/p...

在cocos2d-js中使用pomelo【图】

一 下载安装nodejs 下载地址:https://nodejs.org/ #nodejs默认安装了npm工具 pomelo是基于nodejs,会用到很多nodejs中的代码。另外还需要用到npm工具。二 安装git 参考github官网:https://help.github.com/articles/set-up-git/ npm工具会用到git三 下载pomelo库使用npm工具下载pomelo库 npm install pomelo-cocos2d-js --save会在命令行所在的目录下下载一个文件夹node_modules四 安装browserify使用npm工具安装browserify npm i...

cocos2d-x main.cpp源码详析 v2.26【代码】

// create the application instance AppDelegate app; CCEGLView* eglView = CCEGLView::sharedOpenGLView(); eglView->setViewName("Fei"); eglView->setFrameSize(480, 320); return CCApplication::sharedApplication()->run(); 一、静态类成员函数 CCEGLView::sharedOpenGLView CCApplication::sharedApplication 凡是以 share 开头的这种方式都是类成员静态函数 二、单例模式 单例模式:我进来一次之后,这个指...

关于Cocos2d-x中对其他某个类的某个属性的获得

类A要获得类B中的某个属性,可以是节点属性1.先在B类中定义一个_edge的节点属性(可以在B类中进行各种对_edge的操作),然后写一个方法Node* GameController::getEdge(){   return _edge;} 2.接着在A类中先实例化一个B类的对象,然后用这个对象调用刚才写在B类中的那个方法,就可以获得B类中的那个属性。if (gc->getEdge()->getBoundingBox().containsPoint(t->getLocation())) { }原文:http://www.cnblogs.com/HangZhe/p/57697...

Cocos2d-X3.0 刨根问底(五)----- Node类及显示对象列表源码分析【代码】【图】

上一章 我们分析了Cocos2d-x的内存管理,主要解剖了 Ref、PoolManager、AutoreleasePool这三个类,了解了对象是如何自动释放的机制。之前有一个类 Node经常出现在各种场合,不是做为参数就是做为返回值,那么这一章节我们就去看看这个Node类到底在Cocos2d-x里处于一个什么样的地位。 直接进入主题,我们打开CCNode.h文件。我去,这个文件有1500行,这么长怎么看啊,放松一下整体看过一遍,松了一口气,还好,还没那么糟,文...

cocos2dx基础篇(28)——单例模式【代码】

【唠叨】 单例模式,说的通俗一点就是:创建某个类的全局唯一静态实例对象。也就是说从它创建开始,一直到整个游戏程序结束才会释放资源,期间一直保存的着数据。 单例类在大部分游戏中应该是必不可少的部分,如整个游戏音乐的开关控制、数据的加载与存储等都需要一个全局访问点来控制,那就需要用到单例类了。【致谢】 http://blog.csdn.net/star530/article/details/22610229【单例模式】 有一个很形象的比喻,摘自:...

关于cocos2dx手游lua文件加密的解决方式

非常多使用cocos2dx+lua做游戏的同学。都会想到一个问题,我的游戏一旦公布,如何才干保证的我脚本代码不被破解。不泄露代码。尽管这和开源、共享的原则不合。可是代码也是coder的劳动成果,理应得到保护。特别是商业游戏更是如此,不希望被别人破解掉源代码而且进行改动。 今天的话题就是怎样实现lua脚本文件的加密和解密。 我在网络上查过,都没有成熟的解决方式。然后我经过考虑之后,总结出两种解决方式,供大家參考...

Quick-cocos2d-x3.3 Study (九)--------- 为物体添加物理特性【代码】

添加一个主角 1 local Player = class("Player", function()2return display.newSprite("#player.png") 3end)4 5function Player:ctor()6 -- 为物体添加物理属性7 local body = cc.PhysicsBody:createBox( self:getContentSize(), cc.PHYSICSBODY_MATERIAL_DEFAULT, cc.p( 0, 0 ) )8 self:setPhysicsBody( body )9end 1011return Player这里调用cc.PhysicsBody::createBox()方法创建了一个矩形的 bod...

基于Cocos2d-x学习OpenGL ES 2.0系列——纹理贴图(6)【代码】

在上一篇文章中,我们介绍了如何绘制一个立方体,里面涉及的知识点有VBO(Vertex Buffer Object)、IBO(Index Buffer Object)和MVP(Modile-View-Projection)变换。 本文将在教程4的基础之上,添加纹理贴图支持。最后,本文会把纹理贴图扩展至3D立方体上面。 基本方法当我们把一张图片加载到内存里面之后,它是不能直接被GPU绘制出来的,纹理贴图过程如下:首先,我们为之前的顶点添加纹理坐标属性并传到vertex shader里面去;然后,把...

libpomelo的cocos2d-x客户端使用总结

这几天看了libpomelo的cocos2dx客户端这是个聊天室,由2个场景构成,登录场景LoginScene,聊天场景ChatScene。一. LoginScene客户端是以Login场景来启动的Login场景初始化时先构造各种控件比如文本框,然后为登录按钮绑定登录回调 创建menu及其回调CCMenuItemLabel *pMenuItem = CCMenuItemLabel::create(label, this, menu_selector(Login::onLogin));CCMenu *pMenu = CCMenu::create(pMenuItem, NULL);pMenu->setPosition( CCPo...

Cocos2d-x3.3Final(6)Slider常用成员函数(C++)

滑动栏:Slider * slider = Slider::create();slider->loadBarTexture("sliderTrack.png");//设置滑动栏的背景图片slider->loadSlidBallTextures("sliderThumb.png", "sliderThumb.png", "");//滑动栏的滑动按钮图片slider->loadProgressBarTexture("sliderProgress.png");//滑动栏的进度图片slider->setPosition(Vec2(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y + 100));slider->addEventListener(CC_CALL...

Cocos2D-x游戏开发之二十三:CCNotificationCenter观察者模式(2)-不同层之间事件的发送和接受【图】

刚才我们 学习了基本的CCNotificationCenter观察者模式在一个层之中监听事件,现在我们再进一步学习如何在不同层之间监听吧,这一节的知识点我们在HelloWorld中发送一个事件消息在OtherLayer中接受并且处理消息。其实很简单只是一个函数换了个位置而已,直接上代码吧:class HelloWorld : public cocos2d::CCLayer { public:virtual bool init(); static cocos2d::CCScene* scene();void sengMsg(CCObject *pSender);//void test...

cocos2dx -lua 面向对象-转

转自:http://www.himigame.com/lua-game/1282.html上一篇中,向童鞋们介绍了如何自定义类binding到Lua中供给使用的教程,那么本篇将介绍利用OOP思想在在Lua中进行创建一个自定义类。 首先Himi来向大家讲解如何在Lua中不binding来自定义lua类,其实这种方式在Cocos2dx的Lua Samples已经为我们做好了例子,就看童鞋们是否认真阅读了。此示例路径在你解压cocos2dx引擎包下的cocos2d-2.1rc0-x-2.1.2/samples/Lua/TestLua 中的 Touc...

cocos2dx 2.2.3 xcode5.0,新建mac项目报错【图】

cocos2dx 2.2.3 xcode5.0,新建mac项目报错 Undefined symbols for architecture x86_64: "cocos2d::extension::LabelReader::createInstance()", referenced from: cocos2d::extension::GUIReader::GUIReader() in GUIReader.o "cocos2d::extension::ButtonReader::createInstance()", referenced from: cocos2d::extension::GUIReader::GUIReader() in GUIReader.o "cocos2d::extension::LayoutReader::cre...

Cocos2d-x 3.0 Json用法 Cocos2d-x xml解析

Cocos2d-x 3.0 加入了rapidjson库用于json解析。位于external/json下。rapidjson 项目地址:http://code.google.com/p/rapidjson/wiki:http://code.google.com/p/rapidjson/wiki/UserGuide下面就通过实例代码讲解rapidjson的用法。使用rapidjson解析json串引入头文件12#include "json/rapidjson.h"#include "json/document.h"json解析12345678910111213std::string str = "{\"hello\" : \"word\"}";CCLOG("%s\n", str.c_str());ra...

cocos2d-实现读取.plist文件(使用数组CCArray)

学习札记之cocos2d-x2.1.1实现读取.plist文件(使用数组CCArray)[html] view plaincopyprint?<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>picture</key> <array> <string>1.png</string> <string>2.png</string> <string...

cocos2d-x 3.x lua的api与C++的关系

1、Lua中如何使用Cocos2d-x引擎中的类?在C++中是这样调用的://Sprite* sprite = Sprite::create();sprite->setPosition(Vec2(100, 100));this->addChild(sprite);//而在Lua中是这样调用的://local sprite = cc.Sprite:create()sprite:setPosition(cc.p(100, 100))self:addChild(sprite)//是不是很简单?差别其实不是很大嘛!Lua中使用引擎中的类,只要在前面多加个 cc. 即可。而调用类的函数,不是双冒号(::) ,而是一个冒号(...

1 游戏逻辑架构,Cocos2d-x游戏项目创建,HelloWorld项目创建,HelloWorld程序分析,(CCApplicationProtocol,CCApplication,AppDeleg【图】

??1 游戏逻辑架构具体介绍A 一个导演同一时间仅仅能执行一个场景,场景其中,能够同一时候载入多个层,一个层能够可载多个精灵。层中亦能够加层。B 场景切换sceneàaddChild(layer);layeràaddChild(sprite); 2 项目创建命令:A 进入tools下的project-creatE:\Installed\cocos2d-x-2.2.3\tools\project-creator>B python create_project.py -project MyCocos2dx -package com.toto.mycocos01 -language cppC 命令解释:-project MyC...

Cocos2d-x 3.0final 终结者系列教程03-源代码文件夹说明【图】

话说今天从霍营到回龙观,走到天鑫家园东路。我肋哥去,堵死我啦。7:30出门,9:10还没到回龙观。北京这交通真是坑爹。回过头想想。怪自己走小路,有时候确实快。可有时候真堵。堵了35分钟后果断掉头,如今想做个測试,假设发现前方堵车约200米,同一时候你还知道有其它路能够到达目的地,你会做何举动?1。死等。2。超过5分钟没动。立刻掉头,改路。3。假设有掉头的。立刻掉头。改路。4。走到修路点发现彻底过不去了,掉头。改路...

(28)Cocos2d-x xml解析【代码】

Cocos2d-x 已经加入了tinyxml2用于xml的解析。3.0版本位于external/tinyxml2下。2.x版本位于cocos2dx/support/tinyxml2下。tinyxml2 Github地址:https://github.com/leethomason/tinyxml2帮助文档地址:http://grinninglizard.com/tinyxml2docs/index.html生成xml文档引入头文件#include "tinyxml2/tinyxml2.h" using namespace tinyxml2;xml文档生成void HelloWorld::makeXML(const char *fileName) { std::string filePath = F...