在GitHub MyGame clone 代码,添加到配置并新建好的工程中运行下来就可以看到这个画面:


中间的小点是显示的当前触摸点,本文暂不讨论。图中的蓝天是蓝色的 LayerColor

this->addChild( LayerColor::create( Color4B( 182, 228, 254, 255 ) ) );

云和山都是用 DrawNode 画的。

云的组合很简单,画四个圆调整好大小位置就可以做出不错的效果,调整下大小,位置就可以了

	Color4F color = Color4F( 0.929f, 0.972f, 1.0f, 1.0f );
auto circle = DrawNode::create( );
circle->drawSolidCircle( Vec2::ZERO, 60.0f, 0.0f, 24, color );
circle->setPosition( 0, 0 );
auto circle1 = DrawNode::create( );
circle1->drawSolidCircle( Vec2::ZERO, 35.0f, 0.0f, 24, color );
circle1->setPosition( 50, -15 );
auto circle2 = DrawNode::create( );
circle2->drawSolidCircle( Vec2::ZERO, 40.0f, 0.0f, 24, color );
circle2->setPosition( -50, -10 );
auto circle3 = DrawNode::create( );
circle3->drawSolidCircle( Vec2::ZERO, 25.0f, 0.0f, 24, color );
circle3->setPosition( -80, -22 ); auto cloud = Node::create( );
cloud->addChild( circle3 );
cloud->addChild( circle2 );
cloud->addChild( circle1 );
cloud->addChild( circle );
return cloud;

山的画法相对来说有点复杂,不过实际上用的是画多边形,其实圆也是用多边形画的,边多也看起来也就像圆了,上边画的每个圆都用24条边画的。

山和云一样多个多边形叠加,不同的多边形画不同的颜色,看起来有层次

山还有一点不同的是:山的数据保存在XML文件中,需要读取和处理后才能画,

class DrawSp :public DrawNode
{ public:
bool init( );
void drawVectArr( VectArr * va );
void drawVectArrBt( VectArr * va);
void drawSolidVectArr( VectArr * va );
void drawSolidVectArrBt( VectArr * va );
//void drawBezier( const Bezier & bz, const Color4F & color, int seg = 30 ); void drawRoad( const Vec2 * vec, unsigned int seg,
const Vec2 & offset, const Color4F & color ); CREATE_FUNC( DrawSp );
protected:
DrawSp( );
~DrawSp( ); private: };

对DrawNode 扩展了几个函数,实际上只是为了更方便的用自定义数据类(VectArr)去画多边形

结合自定义的数据快捷的画出一座山:

bool BgLayer::init( )
{
if( !Node::init( ) )
{
return false;
}
auto vsize = _director->getVisibleSize( );
auto lines = _lineLayer->getLines( ); auto arr = new VectArr*[ lines.size( )];
for( int i = 0; i < lines.size( ); i++ )
{
lines[ i ] *= vsize;
arr[ i ] = new VectArr( lines[ i ] );
}
arr[ 0 ]->stichingToBottom( );
auto d = DrawSp::create( );
d->drawSolidVectArrBt( arr[ 0 ] );
this->addChild( d );
for( int i = 1; i < lines.size( ); i++ )
{
auto l = arr[ 0 ]->stiching( arr[ i ] );
l->stichingToBottom( );
auto dl = DrawSp::create( );
dl->drawSolidVectArrBt( l );
this->addChild( dl );
} return true;
}

再画一座加上去和背景就最上面的背景图了:

背景就先说到这里,牵扯到其他的太多了,哎~~

My Game --背景的更多相关文章

  1. CSS3 background-image背景图片相关介绍

    这里将会介绍如何通过background-image设置背景图片,以及背景图片的平铺.拉伸.偏移.设置大小等操作. 1. 背景图片样式分类 CSS中设置元素背景图片及其背景图片样式的属性主要以下几个: ...

  2. 冒泡,setinterval,背景图的div绑定事件,匿名函数问题

    1.会冒泡到兄弟元素么? $(function(){ $("#a").click(function(){alert("a")}) $("#b" ...

  3. app引导页(背景图片切换加各个页面动画效果)

    前言:不知不觉中又加班到了10点半,整个启动页面做了一天多的时间,一共有三个页面,每个页面都有动画效果,动画效果调试起来麻烦,既要跟ios统一,又要匹配各种不同的手机,然后产品经理还有可能在中途改需求 ...

  4. CSS 3学习——box-sizing和背景

    box-sizing 在CSS 2中设置元素的width和height仅仅是设置了元素内容区的宽和高,元素实际的尺寸是margin + border + padding + 内容区. CSS 3(截止 ...

  5. .NET同步与异步之相关背景知识(六)

    在之前的五篇随笔中,已经介绍了.NET 类库中实现并行的常见方式及其基本用法,当然.这些基本用法远远不能覆盖所有,也只能作为一个引子出现在这里.以下是前五篇随笔的目录: .NET 同步与异步之封装成T ...

  6. Android—ListView条目背景为图片时,条目间距问题解决

    ListView是android开发中使用最普遍的控件了,可有的listView条目的内容颇为丰富,甚至为了美观,背景用指定图片,如下图:

  7. 在rem布局下使用背景图片以及sprite

    现在移动端页面用rem布局已经是一大流派了,成熟的框架如淘宝的flexiable.js,以及我的好友@墨尘写的更轻量级的hotcss.用rem作单位使得元素能够自适应后,还有一块需要关注的,那就是背景 ...

  8. Atitit 动态按钮图片背景颜色与文字组合解决方案

    Atitit 动态按钮图片背景颜色与文字组合解决方案 转换背景颜色,setFont("cywe_img", fontScale, 50, 5) 设置文字大小与坐标 文字分拆,使用字 ...

  9. 日常css技巧小结(1)--背景透明度改变对内容无影响

    刚开始出现的错误,内容会受到背景透明度改变的影响:如图: 代码: <!DOCTYPE html> <html lang="en"> <head> ...

  10. C# 给PDF添加图片背景

    C# 给PDF添加图片背景 今天要实现的是给PDF文件添加图片背景这个功能.PDF是近年来最流行的文件之一,无论是办公还是日常生活中都经常会用到,很多时候,PDF文件的背景色都是白色,看多了难免觉得累 ...

随机推荐

  1. 从头开始一步一步实现EF6+Autofac+MVC5+Bootstarp极简的实现前后台ajax表格展示及分页实现

    本来是想试着做一个简单OA项目玩玩的,真是不做不知道,一做吓死人,原来以为很简单的事情,但是做起来不是忘这就是忘那的,有的技术还得重新温习.所以还是得记录.免得哪天电脑挂了,就全没有了. 开始是看了园 ...

  2. Robotium自动化测试框架实用教程(图)

    一.简介 Robotium是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击.长按.滑动等).查找和断言机制的API,能够对各 ...

  3. url结构说明

    就以下面这个URL为例,介绍下普通URL的各部分组成 http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&pa ...

  4. top free综合监控工具

    top选项: -d:指定刷新时间间隔 -n:指定刷新次数 -u:指定只显示user用户的进程信息 -p:指定只显示pid的进程信息 [root@linuxzgf ~]# top Mem: 817449 ...

  5. noi 9267 核电站

    题目链接:http://noi.openjudge.cn/ch0206/9267/ 描述 一个核电站有N个放核物质的坑,坑排列在一条直线上.如果连续M个坑中放入核物质,则会发生爆炸,于是,在某些坑中可 ...

  6. jQuery 遍历(上)

    目录: 一:定义二:遍历 DOM三:jQuery 参考手册 - 遍历 定义:什么是遍历?jQuery 遍历,意为"移动",用于根据其相对于其他元素的关系来"查找" ...

  7. URLClassLoader类

    URLClassLoader类 1.URLClassLoader类也是ClassLoader类的实现类,它的功能非常强大,他可以从本地文件系统中获取二进制文本来加载类,也可以从远程主机获取二进制文件来 ...

  8. hadoop2.0初识1.3

    1.配置分布式hadoop 1.1 准备三台测试机(虚拟机就可以) 1.1.1 将life-hadoop虚拟机克隆2个分别为life-hadoop02和life-hadoop03 1.1.2 查看ip ...

  9. 单元测试:查找list[]中的最大值

     原始代码如下: int Largest(int list[], int length) { int i,max; for(i = 0; i < (length – 1); i ++ ) { i ...

  10. FreeSWITCH中文语音包

    一.中文语音资源的获取 官方提供的资源:http://files.freeswitch.org/releases/sounds/ 自己录音 实在不行可以@我给你发一份. 二.中文资源的安装 英文资源的 ...