在Cocos2d-X中玩转精灵
创建一个Cocos2d-Xproject,project的文件夹例如以下图所看到的:
在Resourcees目录中加入一张png格式的图片
在HelloWorldScene.cpp文件里的bool HelloWorld::init()函数中加入以下的代码
//初始化父类
if ( !CCLayer::init() )
{
return false;
} //创建精灵
CCSprite* sprite = CCSprite::create("blocks.png");
CCSprite* sprite1 = CCSprite::create("blocks.png"); //精灵跳跃
//第一个參数:完毕跳跃所花的时间
//第一个參数:跳跃到的位置
//第一个參数:跳跃的高度
//第一个參数:跳跃的次数
sprite->runAction(CCJumpBy::create(60, ccp(0, 0), 100, 100)); //将精灵加到层上
this->addChild(sprite); //将精灵加入到层上
addChild(sprite1); return true;
程序运行结果:(实现了精灵的上下跳动)
在上面的代码以下添加以下的代码实现设置精灵的位置
sprite->setPosition(CCPoint(100, 200));
sprite1->setPosition(CCPoint(300, 200));
运行结果:
在HelloWorldScene.cpp文件里的bool HelloWorld::init()函数中加入以下的代码实现设置比例
//调用CCLayer的父类的初始化函数
if ( !CCLayer::init() )
{
return false;
} //创建精灵
CCSprite* sprite = CCSprite::create("blocks.png");
CCSprite* sprite1 = CCSprite::create("blocks.png"); //将精灵加到层上
this->addChild(sprite); //将精灵加到层上
addChild(sprite1); //设置精灵的位置
sprite->setPosition(CCPoint(100, 200));
sprite1->setPosition(CCPoint(300, 200)); //设置比例
sprite->setScale(.5f);
sprite->setScaleX(.5f);
sprite->setScale(2); return true;
运行结果:
在HelloWorldScene.cpp文件里的bool HelloWorld::init()函数中加入以下的代码实现精灵旋转
//调用CCLayer的父类的初始化函数
if ( !CCLayer::init() )
{
return false;
} //创建精灵
CCSprite* sprite = CCSprite::create("blocks.png");
CCSprite* sprite1 = CCSprite::create("blocks.png"); //将精灵加到层上
this->addChild(sprite); //将精灵加到层上
addChild(sprite1); //设置精灵的位置
sprite->setPosition(CCPoint(100, 200));
sprite1->setPosition(CCPoint(300, 200)); // setRotation旋转。角度为单位,正数是顺时针,负数是逆时针
sprite->setRotation(-80);
sprite->setRotationY(180); return true;
运行结果:
在HelloWorldScene.cpp文件里的bool HelloWorld::init()函数中加入以下的代码实现精灵扭曲跟精灵在一个平面上旋转差点儿相同
//调用CCLayer的父类的初始化函数
if ( !CCLayer::init() )
{
return false;
} //创建精灵
CCSprite* sprite = CCSprite::create("blocks.png");
CCSprite* sprite1 = CCSprite::create("blocks.png"); //将精灵加到层上
this->addChild(sprite); //将精灵加到层上
addChild(sprite1); //设置精灵的位置
sprite->setPosition(CCPoint(100, 200));
sprite1->setPosition(CCPoint(300, 200)); // setSkewX 扭曲,跟单向量的旋转差点儿相同,可是不会颠倒
sprite->setSkewX(180);
sprite1->setRotationX(180); return true;
运行结果:
在HelloWorldScene.cpp文件里的bool HelloWorld::init()函数中加入以下的代码实现精灵扭曲跟精灵在一个平面上旋转差点儿相同
//调用CCLayer的父类的初始化函数
if ( !CCLayer::init() )
{
return false;
} //创建精灵
CCSprite* sprite = CCSprite::create("blocks.png");
CCSprite* sprite1 = CCSprite::create("blocks.png"); //将精灵加到层上
this->addChild(sprite); //将精灵加到层上
addChild(sprite1); //设置精灵的位置
sprite->setPosition(CCPoint(100, 200));
sprite1->setPosition(CCPoint(300, 200)); // setFlipX 反转。跟setRotationY(180)效果一样
sprite->setFlipX(true); return true;
运行结果:
//调用CCLayer的父类的初始化函数
if ( !CCLayer::init() )
{
return false;
} //创建精灵
CCSprite* sprite = CCSprite::create("blocks.png");
CCSprite* sprite1 = CCSprite::create("blocks.png"); //将精灵加到层上
this->addChild(sprite); //将精灵加到层上
addChild(sprite1); //设置精灵的位置
sprite->setPosition(CCPoint(100, 200));
sprite1->setPosition(CCPoint(300, 200)); // setOpacity 透明度 0~255(取值范围),255不透明,0全透明
sprite->setOpacity(128); return true;
//调用CCLayer的父类的初始化函数
if ( !CCLayer::init() )
{
return false;
} //创建精灵
CCSprite* sprite = CCSprite::create("blocks.png");
CCSprite* sprite1 = CCSprite::create("blocks.png"); //将精灵加到层上
this->addChild(sprite); //将精灵加到层上
addChild(sprite1); //设置精灵的位置
sprite->setPosition(CCPoint(100, 200));
sprite1->setPosition(CCPoint(300, 200)); // setVisible 是否可见
sprite->setVisible(false); return true;
在Cocos2d-X中玩转精灵的更多相关文章
- 如何在Cocos2D 1.0 中掩饰一个精灵(一)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 原帖来自Ray Wunderlich写的精彩的文章 How To ...
- 如何在Cocos2D游戏中实现A*寻路算法(六)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...
- 可视化(番外篇)——在Eclipse RCP中玩转OpenGL
最近在看有关Eclipse RCP方面的东西,鉴于Gephi是使用opengl作为绘图引擎,所以,萌生了在Eclipse RCP下添加画布,使用opengl绘图的想法,网上有博文详细介绍这方面的内容, ...
- 如何在cocos2d项目中enable ARC
如何在cocos2d项目中enable ARC 基本思想就是不支持ARC的代码用和支持ARC的分开,通过xcode中设置编译选项,让支持和不支持ARC的代码共存. cocos2d是ios app开发中 ...
- 在C#编程中玩转枚举,分享我的EnumHelper。
在C#编程中玩转枚举,分享我的EnumHelper. 在软件开发过程中,我们经常会为特定的场景下的特定数据定义逻辑意义.比如在用户表中,我们可能会有一个用户状态字段,该字段为整形.如果该字段的值为1则 ...
- 如何在Cocos2D游戏中实现A*寻路算法(一)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...
- Windows新终端中玩转ASCII和Emoji游戏的正确姿势
Windows新终端中玩转ASCII和Emoji游戏的正确姿势 前一段时间,我搬运了几个Windows Terminal中玩游戏的视频,详情请看 发布在即!来一睹官方团队如何玩转 Windows Te ...
- 如何在 Kubernetes 集群中玩转 Fluid + JuiceFS
作者简介: 吕冬冬,云知声超算平台架构师, 负责大规模分布式机器学习平台架构设计与功能研发,负责深度学习算法应用的优化与 AI 模型加速.研究领域包括高性能计算.分布式文件存储.分布式缓存等. 朱唯唯 ...
- 如何在Cocos2D 1.0 中掩饰一个精灵(六)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 掩饰一个精灵:实现代码 打开HelloWorldLayer.m并 ...
随机推荐
- 以简单的例子谈一下C#中的COPY
周五晚上加班的时候做一堆ComboBox直接的联动,然后呢,这些cbo的DataSource都是同一个DataTable,当时写代码的时候求快也就没有太注意DataTable的绑定,然后就出了一些小问 ...
- DB2使用收集
db2命令收集 创建带分区的表: create table table_name( )in table_space index in index_space partition by range(c ...
- spring 将配置文件中的值注入 属性
1.编写配置文件 #债权转让 #默认周期 必须大于0 credit.defaultDuration=1 #最小转让金额(元) credit.minBidAmount=1.00 #最小转让时间 到期时间 ...
- 【译】x86程序员手册03 - 2.1内存组织和分段
2.1 Memory Organization and Segmentation 内存组织和分段 The physical memory of an 80386 system is organized ...
- 7、scala面向对象编程之类
1. 定义一个简单的类 2.getter与setter 3.自定义getter与setter方法 4.仅暴露field的getter方法 5.private[this]的使用 6.Java风格的ge ...
- windows下使用批处理设置环境变量
1. 设置临时环境变量 set BAT_HOME=c:\bat 此命令只对当前窗口有效,批处理或cmd窗口一关闭,变量就恢复原来的值了. 2. 设置永久环境变量 方法一 setx BAT_HOME C ...
- day02 python
列表: : 在[ ]内,可以存放多个任意类型的值: 并以逗号隔开. 一般用于存放学生的爱好:课堂的周期等等... 例如: 定义一个学生列表,可存放多个学生 list(['钱垚', '李小龙', '张全 ...
- JNI数组操作
在Java中数组分为两种: 1.基本类型数组 2.对象类型(Object[])的数组(数组中存放的是指向Java对象中的引用) 一个能通用于两种不同类型数组的函数: GetArrayLength(ja ...
- .net 内嵌 GeckoWebBrowser (firefox) 核心浏览器
引用nuget包: 注意:Geckofx45 nuget包必须是最后引用,否则初始化会出错 简单示例: using Gecko; using System; using System.Collecti ...
- Java数值数学类
Java数值数学类 序号 方法与描述 1 xxxValue() 将 Number 对象转换为xxx数据类型的值并返回. 2 compareTo() 将number对象与参数比较. 3 equals ...