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/);
this->addChild(background); return true;
}
其实只有添加了三行:
Sprite* background = Sprite::create("images/background.png");
background->setPosition(origin + visibleSize/);
this->addChild(background);
首先通过背景图片"images/background.png"生成了一个精灵,然后把这个精灵作为子节点加入到了HelloWorld(this)中。
然后运行程序,效果如下:

cocos2dx游戏--欢欢英雄传说--添加游戏背景的更多相关文章
- cocos2dx游戏--欢欢英雄传说--添加人物
接下来需要导入精灵帧资源,因为之前下载了TexturePacker,然后通过TexturePacker的"Publish sprite sheet"方法可以生成一个.pvr.ccz ...
- cocos2dx游戏--欢欢英雄传说--添加攻击按钮
接下来添加攻击按钮用于执行攻击动作.同时修复了上一版移动时的bug.修复后的Player::walkTo()函数: void Player::walkTo(Vec2 dest) { if (_seq) ...
- cocos2dx游戏--欢欢英雄传说--添加动作
添加完人物之后接着给人物添加上动作.我们为hero添加4个动作:attack(由3张图片构成),walk(由2张图片构成),hit(由1张图片构成),dead(由1张图片构成):同样,为enemy添加 ...
- cocos2dx游戏--欢欢英雄传说--添加触摸响应
主要的调整就是将HelloWorldScene改成了MainSecne,然后将Player作为了MainScene的私有成员变量来处理.修改了人物图片,使用了网上找到的三国战纪的人物素材代替我之前画的 ...
- cocos2dx游戏--欢欢英雄传说--为敌人添加移动和攻击动作
这里主要为敌人添加了一个移动动作和攻击动作.移动动作是很简略的我动他也动的方式.攻击动作是很简单的我打他也打的方式.效果:代码: #ifndef __Progress__ #define __Prog ...
- cocos2dx游戏--欢欢英雄传说--添加血条
用一个空血槽图片的Sprite做背景,上面放一个ProgressTimer, 通过设置ProgressTimer的进度来控制血条的长短.建立一个Progress类来实现.Progress.h: #if ...
- cocos2d-x游戏引擎核心之十一——并发编程(消息通知中心)
[续] cocos2d-x游戏引擎核心之八——多线程 这里介绍cocos2d-x的一种消息/数据传递方式,内置的观察者模式,也称消息通知中心,CCNotificationCenter. 虽然引擎没有为 ...
- 转载:Cocos2D-x 游戏接入 Windows 设备所需做的六件事
原文地址:http://msopentech.com/zh-hans/blog/2014/05/09/cocos2d-x-%E6%B8%B8%E6%88%8F%E6%8E%A5%E5%85%A5-wi ...
- 解决 Cocos2d-x 中 Android.mk 手动添加源文件
转自:http://blog.csdn.net/ypfsoul/article/details/8909178 Makefile Android.mk 引发的思索 在我们编写 Android 平台 c ...
随机推荐
- 一款基于jquery漂亮的按钮
之前为大家分享了好多css3实现的按钮.今天给大家分享一款基于jquery漂亮的按钮.这款按钮背景下用了一张图片.当鼠标经过的时候背景用半透明div遮住.一起看下效果图: 在线预览 源码下载 实现 ...
- 【C#/WPF】UI控件的拖拽/拉伸
需求①:控件拖拽——按住鼠标,可自由拖拽控件. 方法:目前看到的办法有两种. 使用ZoomableCanvas:http://www.cnblogs.com/gnielee/archive/2011/ ...
- zookeeper连接 org.apache.curator.framework.imps.CuratorFrameworkImpl Background exception was not retry-able or retry gave up [main-EventThread]
ERROR org.apache.curator.framework.imps.CuratorFrameworkImpl Background exception was not retry-able ...
- Spark编程模型(RDD编程模型)
Spark编程模型(RDD编程模型) 下图给出了rdd 编程模型,并将下例中用 到的四个算子映射到四种算子类型.spark 程序工作在两个空间中:spark rdd空间和 scala原生数据空间.在原 ...
- C#程序运行流程
我们写好的C#代码操作系统是如何能识别呢,我们都知道操作系统只能认识二进制 机器代码,下面用图来表示 因为C#是安全的托管代码 同时CLR会在内存中创建应用程序域 托管代码:被CLR管理的代码 非托管 ...
- 关于Cocos2d-x中多边形物理刚体的设置
1.如果想要设置某个物体有多边形的刚体,这样可以更精确地进行碰撞检测,可以用以下的方法 auto hero = PlaneHero::create(); addChild(hero, 0, HERO_ ...
- Docker之删除container和image
删除所有停止的container: docker rm $(docker ps -a -q) 删除所有未标记的image docker rmi $(docker images | grep " ...
- Hello World! 这是我的第一个 CGI 程序
Hello World! 这是我的第一个 CGI 程序上面的 C++ 程序是一个简单的程序,把它的输出写在 STDOUT 文件上,即显示在屏幕上.在这里,值得注意一点,第一行输出 Content-ty ...
- 用C结构体来实现面向对象编程,ti xDAIS标准算法就这么搞的(1)
用C结构体来实现面向对象编程,ti xDAIS标准算法就这么搞的. 测试代码如下: #include <stdio.h> #include <stdlib.h> #includ ...
- linux -- gedit快捷键
Shortcuts for tabs:Ctrl + Alt + PageDown Switches to the next tab to the left.Ctrl + Alt + PageD ...