`
473687880
  • 浏览: 535345 次
文章分类
社区版块
存档分类
最新评论

cocos2d-x 3.0sprite轮换

 
阅读更多

主要是看了偶尔e网事童鞋提出的一篇,主要是改下代码风格,coco2d-x设计木有风格,是copy的,所以努力走自己的风格。

就是sence里面加layer,运行sence渲染layer。

最讨厌那么多static函数了,这根objected programming有毛关系?

果断修改:

bool AppDelegate::applicationDidFinishLaunching() {
    // initialize director
    auto director = Director::getInstance();
    auto eglView = EGLView::getInstance();

    director->setOpenGLView(eglView);
	
    // turn on display FPS
    director->setDisplayStats(true);

    // set FPS. the default value is 1.0/60 if you don't call this
    director->setAnimationInterval(1.0 / 60);

    // create a scene. it's an autorelease object
    auto scene = new GameSence();

    // run
    director->runWithScene(scene);

    return true;
}

然后sence类很简单,很清爽:

class GameSence : public cocos2d::Scene
{
public:
	GameSence();

private:
	GameLayer* m_pGameLayer;
};
GameSence::GameSence()
{
	m_pGameLayer = new GameLayer;
	addChild(m_pGameLayer);
}

GameLayer也很简单:

class GameLayer : public cocos2d::Layer
{
public:
	GameLayer();
	void backGroupMove(float dt);

private:
	cocos2d::Sprite* m_pBackground1;
	cocos2d::Sprite* m_pBackground2;
};
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);
}

void GameLayer::backGroupMove(float dt)
{
	m_pBackground1->setPositionY(m_pBackground1->getPositionY()-2);
	m_pBackground2->setPositionY(m_pBackground1->getPositionY() + m_pBackground1->getContentSize().height -2);

	if (m_pBackground2->getPositionY() == 0)
	{
		m_pBackground1->setPositionY(0);
	}
}

然后显示就是打飞机背景一直在动,飞机飞啊,飞到 啦啦啦!

分享到:
评论

相关推荐

    cocos2d-x 3.0

    在2D游戏中,人物行走通常通过精灵(Sprite)类来实现,cocos2d-x 3.0中的cc::Sprite是用于展示静态或动态图像的对象。人物行走的过程涉及精灵的位置改变、帧动画(Frame Animation)以及物理引擎(如Box2D)的应用...

    Cocos2d-x 3.0的俄罗斯方块代码

    1. **Cocos2d-x 3.0框架**:了解Cocos2d-x 3.0的主要结构和组件,如Scene、Layer、Sprite、Node等,以及如何组织游戏场景和交互逻辑。 2. **图形渲染**:掌握如何使用Cocos2d-x的绘图工具,如DrawNode、Label、...

    Cocos2d-x3.0正式版 练练看 源码

    9. **动画系统**:通过SpriteSheet和Timeline,Cocos2d-x3.0提供了灵活的2D动画制作工具,使开发者能够创建各种复杂的角色动画。 10. **游戏交互**:文件名“20140823_01_llk_游戏交互.wrf”可能包含一个关于游戏...

    cocos2d-x-3.0 类图

    这是我重新弄的cocos2d-x-3.0的类图.之前别人兄台弄的,有些不全面,有些地方错误.我这个可以说是最新的了.每个类添加了中文的详细注解,同时也添加了中文的类名称翻译.这样对cocos2d-x-3.0的框架比较好上手. 有兴趣的...

    cocos2d-x3.0rc0 中文API

    精灵(Sprite)是cocos2d-x中最基本的2D图形对象,用于展示静态或动态图像。3.0版本的`CCSprite`类提供了丰富的动画支持,如帧动画和精灵批处理,大大提升了游戏性能。中文API中详细解释了如何创建、修改和动画化...

    cocos2d-x3.0导出自定义类到lua的测试源文件

    《cocos2d-x3.0中自定义类与Lua交互的深度解析》 在cocos2d-x 3.0版本中,开发者们经常需要将C++自定义的类暴露给Lua脚本使用,以便在游戏中实现更复杂的逻辑和交互。这篇文档将详细解释如何将C++自定义类导出到Lua...

    兄弟连cocos2d-x3.0 final视频教程完整版

    ### Cocos2d-x3.0 Final视频教程知识点解析 #### 一、Cocos2d-x简介 Cocos2d-x是一款开源的游戏开发框架,它支持多种编程语言,包括C++、JavaScript和Lua等。该框架特别适用于移动平台游戏的开发,支持iOS、...

    Cocos2d-x3.0游戏实例《别救我》源码

    Cocos2d-x3.0是一款广泛应用于游戏开发的开源框架,主要支持2D游戏的构建,基于C++,同时也提供了Lua和JavaScript的绑定。它以其高效、跨平台的特性,使得开发者能够轻松地在iOS、Android、Windows等多个平台上发布...

    Cocos2d-x 3.0 过渡学习

    在Cocos2d-x 3.0的过渡学习中,首先需要了解到的是类命名的变化。在3.0版本中,以"CC"为前缀的类名被移除,例如CCSprite类被简化为Sprite,CCNode类被简化为Node,CCDirector类被简化为Director。这意味着,在升级到...

    cocos2d-x 3.0 类关系图

    这是cocos2d-x 3.0 类关系图, 这个制作者是:gamecocos2dx 他做的Xmind,我导出的PNG格式,我推荐还是看Xmind,里面还有一些注释 gamecocos2dx Xmind下载地址:...

    cocos2d-x 3.0创建项目

    下载并解压Cocos2d-x 3.0的压缩包,然后将`[cocos-root]/tools/cocos2d-console/bin/`路径添加到环境变量Path中。这使得你可以从任何目录调用cocos命令行工具。 3. **验证环境**: 打开命令行终端,切换到`cocos...

    animatepacker +cocos2d-x3.0接口封装

    《animatepacker与cocos2d-x3.0接口封装详解》 在游戏开发领域,cocos2d-x是一款广泛使用的2D游戏引擎,而animatepacker则是一款强大的动画处理工具。本文将深入探讨如何将animatepacker的功能与cocos2d-x3.0进行...

    cocos2d-x 3.0 骨骼动画 demo

    《cocos2d-x 3.0 骨骼动画技术详解及应用实践》 cocos2d-x 是一个广泛使用的开源游戏开发框架,而3.0版本在原有的基础上引入了骨骼动画功能,大大增强了2D游戏的角色表现力和动态效果。本篇文章将围绕“cocos2d-x ...

    Cocos2d-JS v3.0官方api文档

    这个框架将Cocos2d-x的C++版本与JavaScript进行了无缝集成,使得开发者能够利用JavaScript编写高性能的游戏,同时享受跨平台的便利。Cocos2d-JS v3.0的官方API文档是开发者进行游戏开发的重要参考资料,它详细阐述了...

    Cocos2d-x3.0final自学教程贪食蛇项目源码

    《Cocos2d-x3.0final自学教程贪食蛇项目源码》是针对游戏开发初学者的一个宝贵资源,它提供了使用Cocos2d-x3.0final版本开发经典游戏"贪食蛇"的完整代码。Cocos2d-x是一个跨平台的2D游戏开发框架,广泛应用于iOS、...

    使用cocos2d-x3.0来给Sprite添加遮罩

    在Cocos2d-x 3.0中,为Sprite添加遮罩是一项常见的图形处理任务,它可以帮助我们实现各种视觉效果,比如隐藏某些区域、创建剪贴蒙版或者实现动态模糊等。下面我们将深入探讨如何使用Cocos2d-x 3.0来实现这一功能。 ...

    cocos2d-x 3.0-alpha0 Lib文件

    《cocos2d-x 3.0-alpha0 Lib文件详解》 cocos2d-x是一款开源的游戏开发框架,尤其在2D游戏开发领域备受开发者喜爱。3.0-alpha0是cocos2d-x的一个重要版本,它引入了诸多新特性与优化,旨在提升开发效率和游戏性能。...

    cocos2d-x 3.0 +cocostudio 1.4 奇怪的大冒险

    《cocos2d-x 3.0与cocostudio 1.4:打造奇怪的大冒险》 在游戏开发领域,cocos2d-x 和 cocostudio 是两款强大的工具,尤其适用于初学者。cocos2d-x 是一个开源的2D游戏引擎,广泛应用于iOS、Android以及Windows等多...

    cocos2d-x 3.0简单例子(超详细)

    【cocos2d-x 3.0 简介】 cocos2d-x是一个开源的、跨平台的游戏开发框架,广泛应用于2D游戏、实验性的交互应用和其他视觉媒体的开发。它基于cocos2d-x是由cocos2d-iphone扩展而来的,支持C++编程语言,同时也兼容Lua...

    cocos2d-x 3.0-alpha0 SDK头文件和DLL文件

    《cocos2d-x 3.0-alpha0 SDK:头文件与DLL的解析与应用》 Cocos2d-x是一款广泛使用的开源游戏开发框架,它基于C++,为开发者提供了跨平台的游戏开发能力,覆盖了iOS、Android、Windows等多个平台。在cocos2d-x 3.0-...

Global site tag (gtag.js) - Google Analytics