声明:模仿偶尔e网事童鞋。
虽然改变了代码风格,但有一个关键点忽略了,就是autorelease。cocos2d-x一般用静态的create函数来搞,里面封装了autorelease。
现在我这种写法需要在外部显式调用。
#pragma once
#include "cocos2d.h"
USING_NS_CC;
class PlaneLayer : public Layer
{
public:
PlaneLayer();
};
#include "PlaneLayer.h"
PlaneLayer::PlaneLayer()
{
Layer::init();
CCSize winSize = CCDirector::sharedDirector()->getWinSize();
auto spriteFrameCache = cocos2d::SpriteFrameCache::sharedSpriteFrameCache();
spriteFrameCache->addSpriteFramesWithFile("shoot.plist");
Sprite* plane = Sprite::createWithSpriteFrame(spriteFrameCache->spriteFrameByName("hero1.png"));
plane->setPosition(ccp(winSize.width/2, plane->getContentSize().height/2));
addChild(plane);
Blink* blink = Blink::create(1,3);
CCAnimation* animation = CCAnimation::create();
animation->setDelayPerUnit(0.1);
animation->addSpriteFrame(spriteFrameCache->spriteFrameByName("hero1.png"));
animation->addSpriteFrame(spriteFrameCache->spriteFrameByName("hero2.png"));
CCAnimate* animate = CCAnimate::create(animation);
plane->runAction(blink);
plane->runAction(CCRepeatForever::create(animate));
}
在GameLayer里包含PlaneLayer,这里我没有用全局对象,因为不是所有对象都应该有权限访问PlaneLayer。谁需要才给他。
class GameLayer : public cocos2d::Layer
{
public:
GameLayer();
void backGroupMove(float dt);
private:
cocos2d::Sprite* m_pBackground1;
cocos2d::Sprite* m_pBackground2;
PlaneLayer* m_pPlaneLayer;
};
GameLayer::GameLayer()
{
cocos2d::Layer::init();
auto spriteFrameCache = cocos2d::SpriteFrameCache::sharedSpriteFrameCache();
spriteFrameCache->addSpriteFramesWithFile("shoot_background.plist");
m_pBackground1= Sprite::createWithSpriteFrame(spriteFrameCache->getSpriteFrameByName("background.png"));
m_pBackground1->setPosition(ccp(0,0));
m_pBackground1->setAnchorPoint(ccp(0,0));
addChild(m_pBackground1);
m_pBackground2= Sprite::createWithSpriteFrame(spriteFrameCache->getSpriteFrameByName("background.png"));
m_pBackground2->setPosition(ccp(0,m_pBackground2->getContentSize().height-5));
m_pBackground2->setAnchorPoint(ccp(0,0));
addChild(m_pBackground2);
schedule(schedule_selector(GameLayer::backGroupMove), 0.01f);
m_pPlaneLayer = new PlaneLayer;
m_pPlaneLayer->autorelease();
addChild(m_pPlaneLayer);
}
看到木有,我这里要显式调用m_pPlaneLayer->autorelease();但代码有木有比之前的清晰,如果感觉木有,就忽略吧,个人喜好。
分享到:
相关推荐
cocos2d-x 3.0是cocos2d-x系列的一个重要升级,它基于C++编写,支持跨平台开发,包括iOS、Android、Windows等多个操作系统。该版本引入了新的渲染系统、性能提升、新的动画系统以及更友好的API,极大地提高了开发...
4. **多平台支持**:作为一款跨平台框架,Cocos2d-x3.0支持iOS、Android、Windows、Mac、Linux等多个平台,开发者只需要编写一次代码,就可以在多个平台上发布游戏。 5. **游戏资源管理**:框架提供了强大的资源...
《Cocos2d-x 3.0的俄罗斯方块代码》是一个基于Cocos2d-x游戏引擎3.0及以上版本实现的经典游戏项目。Cocos2d-x是一个广泛使用的开源跨平台2D游戏开发框架,它允许开发者用C++、Lua或JavaScript编写游戏,并在iOS、...
这是我重新弄的cocos2d-x-3.0的类图.之前别人兄台弄的,有些不全面,有些地方错误.我这个可以说是最新的了.每个类添加了中文的详细注解,同时也添加了中文的类名称翻译.这样对cocos2d-x-3.0的框架比较好上手. 有兴趣的...
Cocos2d-x是一个开源的游戏开发框架,它被广泛应用于iOS、Android、Windows、MacOS、Linux等平台,为游戏开发者提供了一个快速开发跨平台2D游戏的解决方案。Cocos2d-x版本的更新通常会带来许多新的特性和改进,同时...
在cocos2d-x中,Scene代表游戏的一个独立阶段,而Layer则是在Scene上进行游戏逻辑和视觉元素展示的基本单元。3.0版本中,Scene和Layer的创建、管理及过渡都有清晰的API说明,包括`CCScene`、`CCLayer`及其子类。 三...
3.0-alpha0是cocos2d-x的一个重要版本,它引入了诸多新特性与优化,旨在提升开发效率和游戏性能。本篇文章将详细介绍cocos2d-x 3.0-alpha0中的Lib文件,以及其在游戏开发中的应用。 首先,Lib文件是cocos2d-x框架的...
总的来说,animatepacker与cocos2d-x3.0的接口封装是游戏开发中的一个重要环节,它提升了开发效率,降低了资源管理的复杂性,同时也优化了游戏的性能。通过理解和掌握这一技术,开发者可以更好地利用animatepacker的...
### Cocos2d-x3.0 Final视频教程知识点解析 #### 一、Cocos2d-x简介 Cocos2d-x是一款开源的游戏开发框架,它支持多种编程语言,包括C++、JavaScript和Lua等。该框架特别适用于移动平台游戏的开发,支持iOS、...
这是cocos2d-x 3.0 类关系图, 这个制作者是:gamecocos2dx 他做的Xmind,我导出的PNG格式,我推荐还是看Xmind,里面还有一些注释 gamecocos2dx Xmind下载地址:...
在cocos2d-x 3.0中创建项目是一个重要的步骤,这标志着你的游戏或应用开发的起点。Cocos2d-x 是一个跨平台的2D游戏开发框架,支持多种编程语言,包括C++和Lua。以下是使用Cocos2d-x 3.0创建项目的详细步骤: 1. **...
《cocos2d-x3.0中自定义类与Lua交互的深度解析》 在cocos2d-x 3.0版本中,开发者们经常需要将C++自定义的类暴露给Lua脚本使用,以便在游戏中实现更复杂的逻辑和交互。这篇文档将详细解释如何将C++自定义类导出到Lua...
Cocos2d-x3.0是一款广泛应用于游戏开发的开源框架,主要支持2D游戏的构建,基于C++,同时也提供了Lua和JavaScript的绑定。它以其高效、跨平台的特性,使得开发者能够轻松地在iOS、Android、Windows等多个平台上发布...
标题中的"SneakyJoystick-Cocos2d-x 3.0rc0"指的是该库的一个特定版本,即3.0发布候选版0。 SneakyJoystick是由开发者SneakyBox制作的,它为Cocos2d-x游戏提供了模拟摇杆的功能,让玩家能够通过触摸屏幕来控制角色...
cocos2d-x 是一个广泛使用的开源游戏开发框架,而3.0版本在原有的基础上引入了骨骼动画功能,大大增强了2D游戏的角色表现力和动态效果。本篇文章将围绕“cocos2d-x 3.0 骨骼动画 demo”进行深入探讨,包括其工作原理...
本篇将深入探讨如何利用cocos2d-x 3.0与cocostudio 1.4来构建一个"奇怪的大冒险"游戏。 一、cocos2d-x 3.0基础 cocos2d-x 3.0是cocos2d-x系列的一个重要版本,它基于C++,提供了丰富的API和优化的性能。主要特点...
《Cocos2d-x3.0final自学教程贪食蛇项目源码》是针对游戏开发初学者的一个宝贵资源,它提供了使用Cocos2d-x3.0final版本开发经典游戏"贪食蛇"的完整代码。Cocos2d-x是一个跨平台的2D游戏开发框架,广泛应用于iOS、...
cocos2d-x是一个开源的游戏开发框架,基于C++,并支持多平台,包括iOS、Android、Windows以及Mac OS等。它为游戏开发提供了丰富的功能,如图形渲染、动画处理、物理引擎、音频管理以及用户界面设计等。 离线文档...
总结来说,cocos2d-x 3.0是一个强大的游戏开发工具,其3.0版本引入了许多改进,使得开发过程更加高效和便捷。通过理解并熟练运用其核心概念和新特性,开发者可以创造出各种各样的2D游戏。同时,对项目结构的理解有助...
《cocos2d-x 3.0-alpha0 SDK:头文件与DLL的解析与应用》 Cocos2d-x是一款广泛使用的开源游戏开发框架,它基于C++,为开发者提供了跨平台的游戏开发能力,覆盖了iOS、Android、Windows等多个平台。在cocos2d-x 3.0-...