在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并 ...
随机推荐
- yield from (python生成器)
#生成器中的yield from是干什么用的(一般多用于线程,协程那)def func(): # for i in 'AB': # yield i yield from 'AB' # 就相当于上面的f ...
- 最近几道hihocode不会做的题目
几个易错点 1.数据范围一定要开大,一般多开10个或者5个. 2. 从经常写 int a[n], 然后访问a[n], 这显然会下标越界. 3. 浮点数,无法精确的比较,等于,大于,小于, 都需要使用e ...
- Android开发中的SQLite事务处理,即beginTransaction()方法
使用SQLiteDatabase的beginTransaction()方法可以开启一个事务,程序执行到endTransaction() 方法时会检查事务的标志是否为成功,如果程序执行到endTrans ...
- Flume特点
Flume 特点 1.可靠性 当节点出现故障时,日志能够被传送到其他节点上而不会丢失. Flume提供了三种级别的可靠性保障,从强到弱依次分别为: (1) end-to-end(收到数据agent首 ...
- overflow:解决 div的高度塌陷问题
高度塌陷是如何引起的? 解析: 当一个 div中所有的子 div都进行了浮动后,那么会出现该问题,那么解决方就是在父 div中 设置其 overflow:hidden;即可解决高度塌陷问题. 方式 ...
- Android项目实战_手机安全卫士home界面
# 安全卫士主页面# ###1.GridView控件 1.与ListView的使用方式差不多,也要使用数据适配器,通过设置android:numColumns控制显示几列 2.通过指定android: ...
- JS——大小写转化
<script> var str = 'JavaScript'; console.log(str.toUpperCase());//小写转大写 console.log(str.toLowe ...
- 六时出行 App 隐私政策
六时出行 App 隐私政策 本应用尊重并保护所有使用服务用户的个人隐私权.为了给您提供更准确.更有个性化的服务,本应用会按照本隐私权政策的规定使用和披露您的个人信息.但本应用将以高度的勤勉.审慎义 ...
- 检索COM类工厂中CLSID 为 {000209FF-0000-0000-C000-000000000046}的组件时失败, 原因是出现以下错误: 80070005
主要问题原因是Word权限配置问题 解决方案: 控制面板-管理工具-组件服务-计算机-我的电脑-DCOM配置 在列表中找到microsoft word97-2003 document 右键选择属性,选 ...
- 文艺平衡树(区间翻转)(Splay模板)
这篇blog写的吼啊 #include<cstdio> #include<iostream> #include<cstring> using namespace s ...