主要是看了偶尔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);
}
}
然后显示就是打飞机背景一直在动,飞机飞啊,飞到 啦啦啦!
分享到:
相关推荐
在2D游戏中,人物行走通常通过精灵(Sprite)类来实现,cocos2d-x 3.0中的cc::Sprite是用于展示静态或动态图像的对象。人物行走的过程涉及精灵的位置改变、帧动画(Frame Animation)以及物理引擎(如Box2D)的应用...
1. **Cocos2d-x 3.0框架**:了解Cocos2d-x 3.0的主要结构和组件,如Scene、Layer、Sprite、Node等,以及如何组织游戏场景和交互逻辑。 2. **图形渲染**:掌握如何使用Cocos2d-x的绘图工具,如DrawNode、Label、...
9. **动画系统**:通过SpriteSheet和Timeline,Cocos2d-x3.0提供了灵活的2D动画制作工具,使开发者能够创建各种复杂的角色动画。 10. **游戏交互**:文件名“20140823_01_llk_游戏交互.wrf”可能包含一个关于游戏...
这是我重新弄的cocos2d-x-3.0的类图.之前别人兄台弄的,有些不全面,有些地方错误.我这个可以说是最新的了.每个类添加了中文的详细注解,同时也添加了中文的类名称翻译.这样对cocos2d-x-3.0的框架比较好上手. 有兴趣的...
精灵(Sprite)是cocos2d-x中最基本的2D图形对象,用于展示静态或动态图像。3.0版本的`CCSprite`类提供了丰富的动画支持,如帧动画和精灵批处理,大大提升了游戏性能。中文API中详细解释了如何创建、修改和动画化...
《cocos2d-x3.0中自定义类与Lua交互的深度解析》 在cocos2d-x 3.0版本中,开发者们经常需要将C++自定义的类暴露给Lua脚本使用,以便在游戏中实现更复杂的逻辑和交互。这篇文档将详细解释如何将C++自定义类导出到Lua...
### Cocos2d-x3.0 Final视频教程知识点解析 #### 一、Cocos2d-x简介 Cocos2d-x是一款开源的游戏开发框架,它支持多种编程语言,包括C++、JavaScript和Lua等。该框架特别适用于移动平台游戏的开发,支持iOS、...
Cocos2d-x3.0是一款广泛应用于游戏开发的开源框架,主要支持2D游戏的构建,基于C++,同时也提供了Lua和JavaScript的绑定。它以其高效、跨平台的特性,使得开发者能够轻松地在iOS、Android、Windows等多个平台上发布...
在Cocos2d-x 3.0的过渡学习中,首先需要了解到的是类命名的变化。在3.0版本中,以"CC"为前缀的类名被移除,例如CCSprite类被简化为Sprite,CCNode类被简化为Node,CCDirector类被简化为Director。这意味着,在升级到...
这是cocos2d-x 3.0 类关系图, 这个制作者是:gamecocos2dx 他做的Xmind,我导出的PNG格式,我推荐还是看Xmind,里面还有一些注释 gamecocos2dx Xmind下载地址:...
下载并解压Cocos2d-x 3.0的压缩包,然后将`[cocos-root]/tools/cocos2d-console/bin/`路径添加到环境变量Path中。这使得你可以从任何目录调用cocos命令行工具。 3. **验证环境**: 打开命令行终端,切换到`cocos...
《animatepacker与cocos2d-x3.0接口封装详解》 在游戏开发领域,cocos2d-x是一款广泛使用的2D游戏引擎,而animatepacker则是一款强大的动画处理工具。本文将深入探讨如何将animatepacker的功能与cocos2d-x3.0进行...
《cocos2d-x 3.0 骨骼动画技术详解及应用实践》 cocos2d-x 是一个广泛使用的开源游戏开发框架,而3.0版本在原有的基础上引入了骨骼动画功能,大大增强了2D游戏的角色表现力和动态效果。本篇文章将围绕“cocos2d-x ...
这个框架将Cocos2d-x的C++版本与JavaScript进行了无缝集成,使得开发者能够利用JavaScript编写高性能的游戏,同时享受跨平台的便利。Cocos2d-JS v3.0的官方API文档是开发者进行游戏开发的重要参考资料,它详细阐述了...
《Cocos2d-x3.0final自学教程贪食蛇项目源码》是针对游戏开发初学者的一个宝贵资源,它提供了使用Cocos2d-x3.0final版本开发经典游戏"贪食蛇"的完整代码。Cocos2d-x是一个跨平台的2D游戏开发框架,广泛应用于iOS、...
在Cocos2d-x 3.0中,为Sprite添加遮罩是一项常见的图形处理任务,它可以帮助我们实现各种视觉效果,比如隐藏某些区域、创建剪贴蒙版或者实现动态模糊等。下面我们将深入探讨如何使用Cocos2d-x 3.0来实现这一功能。 ...
《cocos2d-x 3.0-alpha0 Lib文件详解》 cocos2d-x是一款开源的游戏开发框架,尤其在2D游戏开发领域备受开发者喜爱。3.0-alpha0是cocos2d-x的一个重要版本,它引入了诸多新特性与优化,旨在提升开发效率和游戏性能。...
《cocos2d-x 3.0与cocostudio 1.4:打造奇怪的大冒险》 在游戏开发领域,cocos2d-x 和 cocostudio 是两款强大的工具,尤其适用于初学者。cocos2d-x 是一个开源的2D游戏引擎,广泛应用于iOS、Android以及Windows等多...
【cocos2d-x 3.0 简介】 cocos2d-x是一个开源的、跨平台的游戏开发框架,广泛应用于2D游戏、实验性的交互应用和其他视觉媒体的开发。它基于cocos2d-x是由cocos2d-iphone扩展而来的,支持C++编程语言,同时也兼容Lua...
《cocos2d-x 3.0-alpha0 SDK:头文件与DLL的解析与应用》 Cocos2d-x是一款广泛使用的开源游戏开发框架,它基于C++,为开发者提供了跨平台的游戏开发能力,覆盖了iOS、Android、Windows等多个平台。在cocos2d-x 3.0-...