Cocos2d-x 的“HelloWorld” 深入分析 本节所用Cocos2d-x版本:cocos2d-1.0.1-x-0.12.0 不能免俗,一切都从“HelloWorld!”开始.打开HelloWorld工程,里面有两个文件目录Classes和win32. Classes下有HelloWorldScene.h/cpp ,AppDelegate.h/cpp. win32下有main.h/cpp 首先看一下win32目录下的main.h,其中…
转载自 ocos2dx 内存管理 - 小花原创博客 - 博客频道 - CSDN.NET http://blog.csdn.net/ring0hx/article/details/7946397 cocos2dx的内存管理移植自Objective-C, 对于没有接触过OC的C++开发人员来说是挺迷惑的.不深入理解内存管理是无法写出好的C++程序的,我用OC和cocos2dx也有一段时间了,在此总结一下,希望对想用cocos2dx开发游戏的朋友有所帮助.   C++的动态内存管理一般建议遵循谁申请谁…
1.CCMenu创建方式 CCMenu* menu = CCMenu::create(cocos2d::CCMenuItem* item,--)參数为CCMenuItem菜单项的对象可变參数列表 2.5种经常使用CCMenu 1)CCMenuItemFont字体菜单项 CCMenuItemFont::create(const  char* value,cocos2d::CCObject* target.SEL_MenuHandler selector) 參数1:显示的文字 參数2:触发的目标对象…
原文地址:http://blog.csdn.net/ring0hx/article/details/7946397 cocos2dx的内存管理移植自Objective-C, 对于没有接触过OC的C++开发人员来说是挺迷惑的.不深入理解内存管理是无法写出好的C++程序的,我用OC和cocos2dx也有一段时间了,在此总结一下,希望对想用cocos2dx开发游戏的朋友有所帮助.   C++的动态内存管理一般建议遵循谁申请谁释放的原则,即谁通过new操作符创建了对象,谁就负责通过delete来释放对象…
http://dualface.github.io/blog/2013/01/01/call-java-from-lua/ 最近在游戏里要集成中国移动的 SDK,而这些 SDK 都是用 Java 编写的.由于我们整个游戏都是使用 Lua 开发的,所以就面对 Lua 与 Java 互操作的问题. 传统做法是先用 C/C++ 借助 JNI(Java Native Interface)编写调用 Java 的接口函数,然后再将这些函数通过 tolua++ 导出给 Lua 使用.这种做法最大的问题就是太繁…
问题场景:我们的游戏在支付时,由于第三方支付比较费时,可能在支付的过程中,我们lua写的cocos2dx项目会断网,我们的游戏有自动重连的机制.我就想,如果断线好了以后,支付完成了,那在断网之前传入的回调函数是否能被成功执行到呢? 就在网上发现了这篇文章 http://dualface.github.io/blog/2013/01/01/call-java-from-lua/#lua20function20E79A84E5BC95E794A8E8AEA1E695B0E599A8 , 个人觉得写的…
CCEditBox.CCControlSwitch.CCControlSlider.CCControlColourPicker.CCControlButton等都是Cocos2d-x 2.x的最新UI扩展,通过#include "cocos-ext.h"导入 一.CCControlSwitch 1.创建方式 1)CCControlSwitch::create(cocos2d::CCSprite* maskSprite,cocos2d::CCSprite* onSprite.cocos2…
转载:http://dualface.github.io/blog/2013/01/01/call-java-from-lua/LuaJavaBridge - Lua 与 Java 互操作的简单解决方案 Table of Contents luaj 主要特征 luaj 用法示例 luaj 实现原理 查找并调用指定的 Java 方法 检查调用结果,并从 Java 方法获取返回值 将 Lua function 作为参数传递给 Java 方法 在 Java 方法中调用 Lua function GL…
原创文章,转载请注明出处:http://blog.csdn.net/sfh366958228/article/details/38964637 前言 之前学了那么多的内容.差点儿全部的控件都要涉及内存管理类CCAutoreleasePool.所以这一次的学习笔记,我们一起来看看CCAutoreleasePool,先从CCObject的autorelease方法入手. CCObject::autorelease CCObject* CCObject::autorelease(void) { //…
前言: 三种情况,引出问题     new出来的对象需要释放,而释放时,如果有其他人引用了这个对象,再次使用这个对象时,则会导致无效指针报错.     于是有了引用计数的施放管理机制.       对于一个返回对象指针的方法.你若不看文档不看内部代码,你无法知道返回的这个指针需不需要你来释放.同样的对于将一个指针作为参数给一个方法后,你为犹豫我能不能施放这个指针.因为你不知道这个方法内部会不会将你的指针施放.     于是有了谁拥有谁施放的施放管理思想.       使用了上述管理机制和思想后,…
原文链接:http://blog.sina.com.cn/s/blog_4057ab6201018y4y.html Objective C内存管理进阶(二):理解autorelease: http://www.cnblogs.com/MobileDevelop/archive/2010/07/19/1779138.html   看了上面博客中对autorelease的见解,对autorelease有了更深入的了解.但是还不是很理解,于是又看了代码.一开始对autorelease的“自动释放”的印…
转自:http://blog.csdn.net/honghaier/article/details/8222401 序列帧动画主要有几个类: CCSpriteFrame:精灵帧信息,序列帧动画是依靠多个精灵帧信息来显示相应的纹理图像,一个精灵帧信息包包含了所使用的纹理,对应纹理块的位置以及纹理块是否经过旋转和偏移,这些信息可以取得对应纹理中正确的纹理块区域做为精灵帧显示的图像. CCAnimationFrame:序列帧动画单帧信息,它存储了对应的精灵帧信息. CCAnimation:序列帧动画信…
转自:http://www.2cto.com/kf/201212/179828.html 在TestCpp中的EffectsTest示例中展示了一些屏幕特效,它是将屏幕划分为多个格子,并对这些格子进行了动画处理从而产生出相应的屏幕特效.今天我们来学习一下这些动画.   主要是涉及到以下几个文件:   CCGrid.h /cpp :网格数据及渲染,包括基本网格数据和3D网格数据,这是数据的基础.   CCActionGrid.h /cpp :网格基本动画,这是动画的基础.   CCActionGr…
Cocos2d-x 2.0 拖尾效果深入分析 另:本章所用Cocos2d-x版本为: cocos2d-2.0-x-2.0.2@ Aug 30 2012 http://cn.cocos2d-x.org/download 今天我们来学习一下Cocos2d-x中的拖尾效果.在游戏中,拖尾效果常常用来做刀光,火球法术等一些运动物体的效果.如图: 在Cocos2d-x中,拖尾效果有一个专门的类CCMotionStreak来实现.下面我们打开CCMotionStreak.h来看一下: [cpp] view…
原创作品,转载请标明:http://blog.csdn.net/jackystudio/article/details/13765639 再看CCObject,剔除上节的拷贝相关,以及Lua脚本相关的属性和方法后,CCObject还剩下什么? 1.剩下什么? 可以看到整个CCObject就是围绕着m_uReference和m_uAutoReleaseCount在转.这两个变量的解释如下.所以CCObject剩下的其实就是对内存的管理. CCObject::CCObject(void)//构造函数…
塔防游戏,类似于保卫萝卜的一种. 需要注意的是几点问题是: 游戏地图是瓦片地图,设置特定的标记,用来标记哪些点是地图点,哪些是塔点. 游戏关卡选择:需要在两个cpp文件传参,用的是静态成员变量. 每一关的不同点是地图的不一样,根据关卡使用不同地图,无需写重复的game1.cpp,game2.cpp. 每个塔对于在它范围内的物体进行攻击,一个双重循环. 展示一下效果吧: 公司Logo: #ifndef __HELLOWORLD_SCENE_H__ #define __HELLOWORLD_SCEN…
很久没有写博客了,这段时间比较忙,又是搬家又是做自己的项目,还有太多琐碎的事情缠身,好不容易抽出时间把最近自己做的一些简单例子记录一下. 在我的项目中,我需要一个显示面板来显示游戏中的一个三维数据,例如,力量,速度,耐力,来直观的显示出物体的特征,让玩家能够一眼看出区别 首先我们需要准备一下素材 显示面板的背景"Panel.png",比如:尽量能够以三角形为背景 1- 新建一个继承自CCSprite的类,命名为CCPanel 2- 在头文件中添加 @interface ZOPanel…
老师手把手教了两天半,看了一下模式,加了几个功能就大功告成了!!! 给我的感想就是全都是指针! 添加图片精灵: CCSprite*  spBG = CCSprite::create(""); this->addChild(spBG); //添加到当前层 spGB->setPosition(ccp(x,y)); //设置坐标 spGB->setScale(0.5); //缩放 文字按钮: CCMenuItemFont* pItem = CCMenuItemFont::c…
在我完成第一个游戏项目的时候,我深切地意识到"使用cocos2d来制作游戏的开发者们,他们大多会被cocos2d的内存问题所困扰".而我刚开始接触cocos2d的时候,社区里面的人们讨论了一个非常有意义的话题:"请简单地讲述你认为新手cocos2d程序员在他开始编码之前,最应该先知道,或者应该关注和注意的事项."这个问题的答案很多,有人讲是"如何加载和保存游戏数据",有人讲的是"如何实现有限状态机"等等.而最吸引我的则是,有一…
译者: 在我完成第一个游戏项目的时候,我深切地意识到“使用cocos2d来制作游戏的开发者们,他们大多会被cocos2d的内存问题所困扰”.而我刚开始接触cocos2d的时候,社区里面的人们讨论了一个非常有意义的话题:“请简单地讲述你认为新手cocos2d程序员在他开始编码之前,最应该先知道,或者应该关注和注意的事项.”这个问题的答案很多,有人讲是“如何加载和保存游戏数据”,有人讲的是“如何实现有限状态机”等等.而最吸引我的则是,有一个人讲到,新手cocos2d程序员或者新手cocoa程序,他们…
// // TestMenu.hpp // mario // // Created by sun on 15/12/22. // // #ifndef TestMenu_hpp #define TestMenu_hpp #include <stdio.h> #include "cocos2d.h" USING_NS_CC; using namespace std; class TestMenu : public CCLayer { public: virtual bool…
#ifndef __HELLOWORLD_SCENE_H__ #define __HELLOWORLD_SCENE_H__ #include "cocos2d.h" class HelloWorld : public cocos2d::CCLayer { public: virtual bool init(); static cocos2d::CCScene* scene(); void menuCloseCallback(CCObject* pSender); CREATE_FUNC…
#ifndef __HELLOWORLD_SCENE_H__ #define __HELLOWORLD_SCENE_H__ #include "cocos2d.h" USING_NS_CC; class HelloWorld : public cocos2d::CCLayer { public: virtual bool init(); static cocos2d::CCScene* scene(); void menuCloseCallback(CCObject* pSender)…
本文主要分两个部分叙述,第一是场景切换,第二是场景切换的进度显示. 一.场景切换 参考learn-iphone-and-ipad-cocos2d-game-development 第五章内容 cocos2d可以使用CCDirector replaceScene替换场景.切换场景时节点会调用CCNode的三个方法 onEnter //节点调用init方法后调用此方法(使用了CCTransitionScene的话,将在过渡效果后调用此方法) onEnterTransitionDidFinish //…
CCScrollView在Cocos2d-X引擎中主要使用在图片尺寸远大于屏幕尺寸的时候使用. 总体来说,使用起来比较简单. 一个是CCScrollView控件本身,一个是CCScrollViewDelegate代理. #1.现在我们先来看CCScrollView的主要方法: */ //滑动方向 typedef enum { kCCScrollViewDirectionNone = -1, kCCScrollViewDirectionHorizontal = 0, kCCScrollViewDi…
文章 [cocos2d] 利用texture atlases生成动画 中介绍了如何生成动画并绑定在CCSprite实例上. 使用该代码遇到了几个问题,值得mark下 问题1.多实例 问题描述: 新建一个PlayerSprite类继承CCSprite,若在PlayerSprite类中使用文中代码生成会出现问题. //生成sprite(动画将绑定在sprite上) CCSprite *sprite = [CCSprite spriteWithSpriteFrame:[frameCache sprit…
好吧,我承认这个我花了N个小时所做的努力都白费了. 事情的开始是这样的,今天在写cocos2dx的时候,测试发现总是出现溢出的问题,总是在main.m的autorelease报错.(好吧,如果我以后发现这还不是溢出的问题的话,一斤狗粮)作为有轻度强迫症的我来说,一直报错不能忍,于是开始找各种ARC的办法.(关于ARC,是Automatic Reference Counting,就是iOS5给我们广大程序猿的一个友好功能,不用再写retain,release了哈,比给俺们发钱还要开心哈~) 开始找…
译者: 在我完成第一个游戏项目的时候,我深切地意识到“使用cocos2d来制作游戏的开发者们,他们大多会被cocos2d的内存问题所困扰”.而我刚开始接触cocos2d的时候,社区里面的人们讨论了一个非常有意义的话题:“请简单地讲述你认为新手cocos2d程序员在他开始编码之前,最应该先知道,或者应该关注和注意的事项.”这个问题的答案很多,有人讲是“如何加载和保存游戏数据”,有人讲的是“如何实现有限状态机”等等.而最吸引我的则是,有一个人讲到,新手cocos2d程序员或者新手cocoa程序,他们…
1. TextureAtlas http://www.cocoachina.com/bbs/read.php?tid-311439-keyword-TextureAtlas.html 2. Label,LabelTTF,LabelBMFont等 http://www.jellythink.com/archives/766 http://www.2cto.com/kf/201409/336234.html Problem Currently Cocos2D supports mainly two…
BS