cocos2dx游戏--欢欢英雄传说--添加游戏背景

经过一段时间的学习cocos2dx,接下来我想要实践开发一个小游戏,我把它命名为“欢欢英雄传说”,项目名将取为HuanHero。
环境:
cocos2dx环境:cocos2d-x 3.11.1
IDE:Code::Blocks 16.01
项目类型:cpp项目
首先创建一个项目:
进入cocos2dx目录,输入:

cocos new HuanHero -l cpp -d ./projects/

这样便在projects目录下新建了一个项目"HuanHero"。
进入./projects/HuanHero/目录,执行以下命令来生成一个codeblocks项目:

cmake -G ‘CodeBlocks - Unix Makefiles‘

指令运行完后可以发现在HuanHero/目录下有一个MyGame.cbp文件,双击点开(cbp是codeblocks project的简称,默认就是用codeblocks编译器打开)。
编译前我们需要修改一下codeblocks的配置,邮件点击项目名("MyGame"图标),进入"properties..."-->"Build targets",选择"Type"为"Console application",选择"Output filename"为bin/MyGame(可以先编译,编译通过之后会出现MyGame,然后选择,或者我们自己输入MyGame即可)。
然后点击编译按钮进行编译(第一次会比较耗时,因为程序会将以来的所有的cocos2dx的源文件进行编译&链接操作),这时候可能会提示出错,比如:
‘isnan’ was not declared in this scope
解决办法是在文件的头文件下添加"using namespace std;"或者将所有的"isnan"改为"std::isnan"。
新建的项目里面的Classes目录下默认有4个文件:
AppDelegate.cpp,AppDelegate.h,HelloWorldScene.cpp,HelloWorldScene.h
我们需要在游戏里面添加场景,所以需要添加一张场景背景的图片。
我们在Resources目录下新建一个目录images,在Resources/images/目录下放入一张图片background.png。
background.png
(右键另存为下载)
并修改HelloWorldScene.cpp的HelloWorld::init()函数如下:
HelloWorld::init()

bool HelloWorld::init()
{
    if ( !Layer::init() )
    {
        return false;
    }

    auto visibleSize = Director::getInstance()->getVisibleSize();
    Vec2 origin = Director::getInstance()->getVisibleOrigin();

    Sprite* background = Sprite::create("images/background.png");
    background->setPosition(origin + visibleSize/2);
    this->addChild(background);

    return true;
}

其实只有添加了三行:

    Sprite* background = Sprite::create("images/background.png");
    background->setPosition(origin + visibleSize/2);
    this->addChild(background);

首先通过背景图片"images/background.png"生成了一个精灵,然后把这个精灵作为子节点加入到了HelloWorld(this)中。
然后运行程序,效果如下:

时间: 2024-08-28 20:54:42

cocos2dx游戏--欢欢英雄传说--添加游戏背景的相关文章

cocos2dx游戏--欢欢英雄传说--添加攻击按钮

接下来添加攻击按钮用于执行攻击动作.同时修复了上一版移动时的bug.修复后的Player::walkTo()函数: void Player::walkTo(Vec2 dest) { if (_seq) this->stopAction(_seq); auto curPos = this->getPosition(); if (curPos.x > dest.x) this->setFlippedX(true); else this->setFlippedX(false); a

cocos2dx游戏--欢欢英雄传说--添加人物移动

主要的调整就是将HelloWorldScene改成了MainSecne,然后将Player作为了MainScene的私有成员变量来处理.修改了人物图片,使用了网上找到的三国战纪的人物素材代替我之前画的很差劲的人物素材.是gif动画,下载了之后用photeshop分解成了一个个png图片.然后在window下用破解的TexturePacker生成了role.plist和role.png文件.改动后的代码还增加了移动的部分.MainScene.cpp部分代码: _listener_touch = E

cocos2dx游戏--欢欢英雄传说--为敌人添加移动和攻击动作

这里主要为敌人添加了一个移动动作和攻击动作.移动动作是很简略的我动他也动的方式.攻击动作是很简单的我打他也打的方式.效果:代码: #ifndef __Progress__ #define __Progress__ #include "cocos2d.h" USING_NS_CC; class Progress : public Sprite { public: bool init(const char* background, const char* fillname); /* the

英雄传说3 白发魔女 作为RPG游戏的成就分析

通关了psp上的英雄传说3白发魔女,有些感想,这里记录一下. 英雄传说3白发魔女,讲述的故事非常简单,两个主角,杰立欧和克莉丝,由于村庄的风俗在成年之时离开村庄,环绕世界进行巡礼.经过五个特别的国家,每个国家都有一个称为夏路的建筑,在其中需要使用随行携带的银色短剑触发一面魔法镜,然后查看魔法镜中显示的 影像.这些影像是对未来的预测.看完每个夏路的影像后绕回村庄,完成巡礼,从此成人. 而在巡礼过程中,他们不断的得知关于20年前跨国巡礼的白发魔女的传言,白发魔女走了和他们相同的路,在每个国家都留下了

购买李宁Cocos2d-x套餐,送最新出的《Cocos2d-x游戏实战指南》签名书一本

活动时间:2016-10-18至2016-11-30 通过本套餐,可完全了解Cocos2d-x 3.x的相关技术,以及掌握C++语言,并具有一定的项目实战经验. Cocos2d-x游戏开发套餐:http://edu.51cto.com/pack/view/id-114.html <Cocos2d-x游戏实战指南>封面 本书月底出版,触控科技副总裁Jane.微软开放体验和合作事业部开发技术顾问梅颖广.51CTO学院运营总监曹亚莉.哈尔滨工业大学  王峥  联袂推荐 目录 第1章     初识CO

Cocos2d-x游戏开发之lua编辑器 subime 搭建,集成cocos2dLuaApi和自有类

Sublime Text http://baike.baidu.com/view/10701920.htm?from_id=8130415&type=syn&fromtitle=Sublime&fr=aladdin 简介 Sublime Text 是一个代码编辑器(Sublime Text 2是收费软件,但可以无限期试用),也是HTML和散文先进的文本编辑器.Sublime Text是由程序员Jon Skinner于2008年1月份所开发出来,它最初被设计为一个具有丰富扩展功能的V

cocos2dx游戏开发学习笔记1-基本概念

这里主要讲构建整个游戏需要的基本元素,很大部分都摘自cocos2dx官网. 1.Director 导演 导演,顾名思义,就是对整个游戏进行整体控制的. "Director"是一个共享的(单元素集)对象,负责不同场景之间的控制.导演知道当前哪个场景处于活动状态,允许你改变场景,或替换当前的场景,或推出一个新场景.当你往场景堆中推出一个新场景时,"Director"会暂停当前场景,但会记住这个场景.之后场景堆中最顶层的场景跳离时,该场景又会继续活跃.此外"Di

cocos2dx游戏的基本元素

3.1 CCDirector:大总管 bool AppDelegate::applicationDidFinishLaunching() ?{ ?   //初始化导演类 ?   CCDirector *pDirector = CCDirector::sharedDirector(); ?   pDirector-]]>setOpenGLView(&CCEGLView::sharedOpenGLView()); ?   //高分辨率屏幕(例如 Retina 屏幕)的资源管理 ?   //pDi

用cocos2d-html5做的消除类游戏《英雄爱消除》(3)——游戏主界面

游戏主界面,同时也是主程序,包括sprite的生成加入以及游戏状态的控制. 下面同样贴下源码再讲解; /** * Power by html5中文网(html5china.com) * author: jackyWHJ */ var STATE_PLAYING = 0; var STATE_GAMEOVER = 1; var g_sharedGameLayer; var GameLayer = cc.Layer.extend({ _time:0, _timeLabel:null, _timeSt