在第一讲中已经新建了第一个cocos2d程序,执行效果例如以下: 在这讲中我们来分析下里面的代码,了解cocos2d的工作原理,看看屏幕上的这个"Hello World"是怎样显示出来的. 这是HelloWorld项目的代码结构: 以下,我们開始分析项目中的这些源文件: 从程序的入口点開始 这么多源文件在这里,到底先看哪个呢?有些人可能会先挑内容少的来看,认为这样就能够轻松解决掉一个源文件了.事实上这是不正确的,这样看起来更加是一头雾水,根本搞不清楚每一个源文件之间的联系.正确的做法应…
好奇 cocos2d 到底是怎样一个框架,正好有个项目需要一个游戏框架,所以稍微了解了一下.小结一下了解到的情况. 基本概念 首先呢,因为 cocos2d 是基于 pyglet 做的,你完全可以直接用 pyglet 达到你想要的效果.但是,没必要重复造轮子. cocos2d 的基本概念包括了 director.scene.layer.框架的作者认为,写游戏和排练电影动画片差不多.director 呢就是导演的意思,scene 就是场景,layer 就是层次.对此,我们可以简单理解为,一个游戏有且…
免责申明(必读!):本博客提供的所有教程的翻译原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作! 前言:这篇文章是我翻译的第一篇关于cocos2d的文章,我在翻译的时候尽量按原文意思来,但难免会加入自己一些理解进去.还有这篇文章所采用的xcode版本是3.2.5,用xcode4.0的朋友可能实现起来有点出入,我会在文章的最后给出解决办法. 文章原来出处:http://www.raywende…
本章直接上源代码.内容不难,主要就是 HelloWorldScene.h文件: #ifndef __HELLOWORLD_SCENE_H__ #define __HELLOWORLD_SCENE_H__ #include "cocos2d.h" class HelloWorld : public cocos2d::Layer { protected: float _angle; cocos2d::Vec2 _vec; public: static cocos2d::Scene* cre…
1.概述 cocos2d::Valie 是一个包含了很多原生类型(int,float,double,bool,unsigned char,char* 和 std::string)外加 std::vector<Value>, std::unordered_map<std::string,Value> 和 std::unordered_map<int,Value> 的类. 你可以把所有上面的提及的原生类型放入 cocos2d::Value 对象中,然后将它们转化为对应的原生…
1.概述 cocos2d::Map<K,V> 是一个内部使用了 std::unordered_map的关联容器模版. std::unordered_map 是一个存储了由key-value键值对组合成构成的关联性容器,允许基于键对单个元素进行快速检索. 2.模版参数 K - key value的类型. map中元素都由它的 key值作为唯一标识. V - mapped value的类型. T 必须是一个指向 cocos2d::Object 子类对象的指针. 3.内存管理 如果你在栈上声明了一个…
cocos2d::Vector cocos2d::Vector<T>是一个封装好的能动态增长顺序访问的容器.cocos2d::Vector<T>中的元素是按序存取的,它的低层实现数据结构是标准模版库中的标准顺序容器std::vector. T - 元素类型 T的类型必须是继承自cocos2d::Object类型的指针.因为已经将Cocos2d-x的内存管理模型集成到了cocos2d::Vector<T>中,所以类型参数不能是其他的类型包括基本类型. 注意:使用现代的c+…
C++中的vector使用范例 一.概述 vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector是一个容器,它能够存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,可以动态改变大小. 例如: // c语言风格 int myHouse[100] ; // 采用vector vector<int> vecMyHouse(100); 当如上定义后,vecMyHouse就可以存放100个int型的数据了. 1.…
#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…
由于预编译文件重复,导致下面的类没有被编译,所以,在写代码的时候也没有提示还报错,说LoadingScene没有定义. #ifndef __HELLOWORLD_SCENE_H__ #define __HELLOWORLD_SCENE_H__ #include "cocos2d.h" class HelloWorld : public cocos2d::Layer { public: static cocos2d::Scene* createScene(); virtual bool…
下载Cocos2d-android的源代码:cocos2d-android-1 git@github.com:ZhouWeikuan/cocos2d.git 将项目导入到eclipse中.运行实例: 1.首先创建一个android项目,然后将lib导入到项目中 2.对MainActivity.java编写 1)首先创建一个view对象 private CCGLSurfaceView view = null; 2)取得 CCDirector 对象 CCDirector director = CCD…
创建项目 配置好开发环境后, 用CMD切换到~\cocos2d\cocos2d-x-2.2.2\tools\project-creator目录上执行以下脚本 python create_project.py -project <ProjectName> -package <PackageName> -language cpp eg:  python create_project.py -project BiuBiuSecondDemo -package com.jingui.Biu…
On April 5, 2012, in idevblogaday, by Steffen Itterheim http://www.learn-cocos2d.com/2012/04/enabling-arc-cocos2d-project-howto-stepbystep-tutorialguide/ 总结: 1.delete the "libs" group in Xcode(only "Remove References") 2."Add Targ…
2.x的触摸事件的版本号 触摸事件处理有2种子.以下单点触摸的样本.(另一种多点触摸屏). 创建cocos2d 该项目. 1. 重写下面虚函数. bool ccTouchBegan(cocos2d::CCTouch* touch, cocos2d::CCEvent* event); void ccTouchMoved(cocos2d::CCTouch* touch, cocos2d::CCEvent* event); void ccTouchEnded(cocos2d::CCTouch* tou…
1.游戏简介 一个"记忆"类的比赛游戏.你和电脑对战,轮到谁的回合,谁翻两张牌,假设两张牌一样.就消掉这两张牌,得2分,能够继续翻牌,假设两张牌不一样,就换一个人.直到最后.看谁的得分高. 游戏设计思想能够看这篇文章<Cocos2d 游戏状态机> 2. Lua 简单面向对象 我们知道Lua是脚本语言,不是真正面向对象语言.可是面向对象好像能让代码结构更加合理.Javascript, Lua都能够模拟出面向对象.Lua面向对象还有超多种方式实现,这里当然不一一介绍. 简单来看…
本文实践自 Ray Wenderlich.Tony Dahbura 的文章<How to Use Animations and Sprite Sheets in Cocos2D 2.X>,原文链接http://www.raywenderlich.com/32045/how-to-use-animations-and-sprite-sheets-in-cocos2d-2-x .在这篇文章,将会学习到怎样创建一个简单的熊行走动画,怎样使用精灵表单,怎样改变熊行走的方向等等. 教程截图: 让我们首先…
使用示例: CCLOG(); CCLOG(, 650000L); CCLOG(); CCLOG(); CCLOG(, , , , ); CCLOG("Floats: %4.2f %.0e %E", 3.1416, 3.1416, 3.1416); CCLOG("%s","A string"); 输出: cocos2d: Characters: a A cocos2d: Decimals: 1977 650000 cocos2d: Precedin…
原文地址:http://www.raywenderlich.com/37701/how-to-make-a-tower-defense-game-tutorial 由Pablo Ruiz写的入门教程,内容相当不错,现由本猫翻译出来,希望大家可以从中学到不少东西.由于本猫水平有限,难免不少错误,欢迎拍砖指正 ;) 文章写成于2013/6/8,Cocos2D版本为2.1-rc1,首次由Pablo Ruiz发布,由Brian Broom更新. 塔防游戏类型有理由成为iOS上最受欢迎的游戏类型.建造终极…
使英雄变成可触碰的对象 这是另一个非常有用的特性.很多用户需要捡起已经存在的英雄然后满屏幕移动它们.让我们按以下步骤实现该功能: 如果用户触摸屏幕空白位置,一个新的英雄将被创建 如果用户触摸一个已经存在的英雄,不会有新英雄被创建,相反Ta可以移动已存在的那个英雄 为了实现这些,我们需要创建一个CCSprite的子类.前进去创建一个名为CCDragSprite的类,该类继承自CCSprite: 在CCDragSprite.h中添加以下一行导入Cocos2d的头文件: #import "cocos2…
原文链接(有节选简写) Apple已经释放出Xcode7,给我们带来了Swift2和每个平台的最新版本支持.Cocos2D却还在等待更新去兼容Apple的改变.不幸的是,SpriteBuilder还未更新而且近期貌似也不会更新.其中的Cocos2D的功能也不再会推送更新.接下来将讲述如何自己更新SpriteBuilder中的Cocos2D. 开始 首先我们将项目升级至最新版本的Cocos2D,我们将从非常基础的地方开始.从新建一个SpriteBuilder的项目开始.如果你要更新一个已存在的项目…
http://www.xuanyusong.com/archives/category/ios/cocos2d_game 分类目录归档:[Cocos2D研究院之游戏开发]   201211-19 Cocos2D研究院之打开全新ViewController与返回(八) 雨松MOMO [Cocos2D研究院之游戏开发] 围观5745次 17条评论          之前cocos2d的文章都是由魏凯同学维护,从今天开始我也会抽时间写点cocos2d的文章.最近在研究如何将IOS游戏与软件结合起来.通…
/*cocos 2d 已经成为了如今移动端游戏开发的强有力的工具,眼下主流游戏中多採用cocos 2d游戏引擎. 我也尝试了一下该引擎.我是用的是cocos2d-android,以后要移植到Cocos2d-x上.废话不多说,代码例如以下.*/ watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGFwcHlub29t/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/South…
Cocos2D 是一款游戏引擎,可与从电脑到手机等多种设备配合使用. 该引擎支持丰富的特性,可帮助创建出色的 2D 游戏.它甚至包含具备全面功能的物理引擎. CoCos2D 的核心元素是基本动画元素(即 sprite)的使用. sprite 可能是一个简单的 2D 图像.也可能是其它 sprite 的容器. 在该游戏引擎中,sprite 排列在一起形成场景.游戏级别或菜单. 如你所知.英特尔® 针对最新的工具推出了很多处理器,这些处理器可为开发者和用户带来出色的计算机图形. 在本文中,我将介绍怎…
简单介绍 我们这个专题要学习的是一款iOS平台的2D游戏引擎cocos2d.严格来说叫做cocos2d-iphone,由于cocos2d有非常多个版本号.我们学习的是iphone版本号的.既然是个游戏引擎,那么它肯定是为了方便游戏开发而设计的. 使用了cocos2d,你能够编写极少量的代码就做出非常cool的游戏,节省你的开发周期.当然,要想出一个大作.还必须下苦工. 在iOS平台的游戏引擎还不止cocos2d一个,只是cocos2d还是比較受欢迎的,AppStore上已经有超过100个游戏是基…
版本号:v3.0 beta以后 语言:C++ 定义在 "COCOS2DX_ROOT/cocos/base" 路径下的 "CCVector.h" 的头文件里. template<class T>class CC_DLL Vector; cocos2d::Vector<T> 是一个封装了动态大小的数组的顺序型容器.它的元素是连续存储的,cocos2d::Vector<T> 的存储是自己主动处理的. 其内部的数据结构实现实际上是STL标…
“ 介绍cocos2d游戏中常用的jsc格式文件的解密.” 01 — 在破解游戏应用中,经常会碰到后缀为jsc的文件,这是基于cocos2d开发的游戏的加密代码,本质上是js文件,只是被加密了. 例如之前分析的网络赌博应用奥迪棋牌和它的兄弟途游斗地主,都是cocos2d游戏,其游戏代码主体就是使用js写的,然后加密成jsc格式. 如果想对这两款应用的加密及破解进行了解,可参考之前的文章: 途游斗地主加密协议分析及破解 博彩应用奥迪棋牌协议破解分析与揭秘 如果想了解一个jsc游戏的逻辑,就需要将它…
Socket,俗称网络套接字,本身并不是协议,而是一个调用接口,是对TCP/IP协议的封装和应用,.提供了一系列方法方便开发者进行网络通讯. TCP/IP协议是使用最早的通讯协议,它是传输层协议,主要解决数据如何在网络中传输. Socket中又分为流模式与数据报模式,即TCP与UDP两种方式.   TCP : Transmission Control Protocol,传输控制协议,是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接.一个TCP连接必须要经过三次"对话"…
WebSocket protocol 是HTML5一种新的协议.它实现了浏览器与服务器全双工通信.实现浏览器与服务器的即时通讯.即服务器也能主动向客户端发消息. WebSocket代理类和方法: cocos2d同样对websocket进行了封装.WebSocket和WebSocket::Delegate 1:WebSocket:    WebSocket类提供了跟websocket相关操作的方法.它的作用包括:    1.创建socket对象    2.向服务器发送数据,可以是文本数据,也可以是…
HTTP协议也叫超文本传输协议.是互联网广泛使用的通信协议,常用于B/S架构中. HTTP连接使用的是短连接形式,也就是"请求-响应"的方式,不仅在请求时需要先建立连接,而且需要客户端向服务器发出请求后,服务器端才能回复数据.   HTTP常用的有2种数据提交方式,分别是GET.POST  1:get是从服务器上获取(查询)数据,post是向服务器传送数据:  2:get传送的数据量较小,不能大于2KB,post传送的数据量较大,一般认为不受限:  3:get安全性非常低:post安全…
|   版权声明:本文为博主原创文章,未经博主允许不得转载. 这个是游戏的核心部分:(FlyBird游戏重中之重) 创建一个物理世界(世界设置重力加速度) 在物理世界中添加一个动态的刚体(小鸟) 在物理世界中添加一个静态的刚体(地板)和一个顶部边界(Edge) 在物理世界中添加一对浮动的刚体(Pipe),并设置线速度 设置每次点击屏幕小鸟上升的加速度 碰撞检测,判断游戏是否结束 下面贴上代码: GamePlay.h #ifndef _GAME_PLAY_H_ #define _GAME_PLAY…