My Game --背景
在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 --背景的更多相关文章
- CSS3 background-image背景图片相关介绍
这里将会介绍如何通过background-image设置背景图片,以及背景图片的平铺.拉伸.偏移.设置大小等操作. 1. 背景图片样式分类 CSS中设置元素背景图片及其背景图片样式的属性主要以下几个: ...
- 冒泡,setinterval,背景图的div绑定事件,匿名函数问题
1.会冒泡到兄弟元素么? $(function(){ $("#a").click(function(){alert("a")}) $("#b" ...
- app引导页(背景图片切换加各个页面动画效果)
前言:不知不觉中又加班到了10点半,整个启动页面做了一天多的时间,一共有三个页面,每个页面都有动画效果,动画效果调试起来麻烦,既要跟ios统一,又要匹配各种不同的手机,然后产品经理还有可能在中途改需求 ...
- CSS 3学习——box-sizing和背景
box-sizing 在CSS 2中设置元素的width和height仅仅是设置了元素内容区的宽和高,元素实际的尺寸是margin + border + padding + 内容区. CSS 3(截止 ...
- .NET同步与异步之相关背景知识(六)
在之前的五篇随笔中,已经介绍了.NET 类库中实现并行的常见方式及其基本用法,当然.这些基本用法远远不能覆盖所有,也只能作为一个引子出现在这里.以下是前五篇随笔的目录: .NET 同步与异步之封装成T ...
- Android—ListView条目背景为图片时,条目间距问题解决
ListView是android开发中使用最普遍的控件了,可有的listView条目的内容颇为丰富,甚至为了美观,背景用指定图片,如下图:
- 在rem布局下使用背景图片以及sprite
现在移动端页面用rem布局已经是一大流派了,成熟的框架如淘宝的flexiable.js,以及我的好友@墨尘写的更轻量级的hotcss.用rem作单位使得元素能够自适应后,还有一块需要关注的,那就是背景 ...
- Atitit 动态按钮图片背景颜色与文字组合解决方案
Atitit 动态按钮图片背景颜色与文字组合解决方案 转换背景颜色,setFont("cywe_img", fontScale, 50, 5) 设置文字大小与坐标 文字分拆,使用字 ...
- 日常css技巧小结(1)--背景透明度改变对内容无影响
刚开始出现的错误,内容会受到背景透明度改变的影响:如图: 代码: <!DOCTYPE html> <html lang="en"> <head> ...
- C# 给PDF添加图片背景
C# 给PDF添加图片背景 今天要实现的是给PDF文件添加图片背景这个功能.PDF是近年来最流行的文件之一,无论是办公还是日常生活中都经常会用到,很多时候,PDF文件的背景色都是白色,看多了难免觉得累 ...
随机推荐
- ScrollView和listview的冲突问题,关于宽度,和滑动
只需要重新listview即可 package com.exmple.listscrow; import java.util.logging.LogManager; import android.co ...
- Signalr简单例子
一.需要引用的 Js: 二.编码 用的是signalr2,需要新建Startup.cs类,编码如下: using Microsoft.Owin; using Owin; using System; u ...
- 运行nodejs的blog程序遇见问题
我是运行这个教程的代码.可以在网上找到相关视频和代码. 第一个问题,数据库中没有创建对应的表就开始运行程序.node app.js 这个错误问题大家可以去重现一下 第二个问题,我也没有看明白,但是我根 ...
- Object类型与Array类型
总结--JS中的引用类型: Object类型,Array类型,Boolean类型,Number类型,String类型,Date类型, Function类型,RegExp类型,单体内置对象(Global ...
- Network-POJ3694并查集+LCA
Network Time Limit: 5000MS Memory Limit: 65536K Description A network administrator manages ...
- 2016年江西理工大学C语言程序设计竞赛(初级组)
问题 A: 木棒根数 解法:把所有的情况保存下来,加一下就好 #include<bits/stdc++.h> using namespace std; map<char,int> ...
- easyui 动态列
$.post('${createLink(action:"build Columns url ")}', params, function(data){ var columns = ...
- [问题2014S02] 解答
[问题2014S02] 解答 首先注意到: 两个实系数多项式 \(f(x),g(x)\) 互素当且仅当 \(f(x),g(x)\) 在复数域 \(\mathbb{C}\) 上没有共公根, 当且仅当结 ...
- Response.End()在Webform和ASP.NET MVC下的表现差异
前几天在博问中看到一个问题--Response.End()后,是否停止执行?MVC与WebForm不一致.看到LZ的描述后,虽然奇怪于为何用Response.End()而不用return方式去控制流程 ...
- iOS - Mac 锁屏快捷键设置
Mac 锁屏快捷键设置 control + shift + Eject 锁屏快捷键 如果用户要离开电脑一段时间,可以选择直接把笔记本直接合上.但是这样原先在跑的进程就会挂起或者结束,如果正在下载,那么 ...