在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并 ...
随机推荐
- 汇编程序45:检测点13.2 (loop指令的中断例程)
安装程序: assume cs:code //loop指令的替代实现 code segment start: mov ax,cs mov ds,ax mov si,offset sub1 mov ax ...
- ACM_蛋糕小王子铁头娃
Problem Description: 铁头娃制作了很多蛋糕,想分给他的小伙伴们,他的小伙伴很喜欢铁头娃做的蛋糕,每个人都想分到最多蛋糕 铁头娃想到了一个头铁主意:先给小伙伴们从1到N编号,在1-N ...
- 跨服务器进行SQL Server数据库的数据处理
exec sp_addlinkedserver 'ITDB', ' ', 'SQLOLEDB', '服务器IP' exec sp_addlinkedsrvlogin 'ITDB', 'false ', ...
- SVN系列学习(二)-小乌龟的安装与配置
1.TortoiseSVN的介绍 TortoiseSVN是Subversion版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录. 2.TortoiseSVN的安装 下载地址:http:/ ...
- java heap 异常
近期,项目每运行一周之后就会堆异常, java.lang.OutOfMemoryError: Java heap space,导致应用中断. 解决办法:将堆内存修改大一点. 从性能优化工具中可以看到修 ...
- [ NOI 2005 ] 聪聪与可可
\(\\\) \(Description\) 一张\(N\)个点,\(M\)条边的有向图中,猫在\(A\)点,鼠在\(B\)点,每一秒两者按照以下规则移动: 猫先走去往老鼠所在地的最短路,可以走一步或 ...
- Android基础TOP3:Activity的线性,相对,帧和表格布局的概括
线性布局 LinearLayout: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&q ...
- CNN结构:HSV中的饱和度解析
参考:颜色的前世今生-饱和度 详解,划重点- 关键这个"纯"是指什么? 是指颜色明亮么?明度高的颜色看起来也明亮啊,不一定纯度高啊- 是说颜色鲜艳么?颜色 "不鲜艳&qu ...
- @viewChild
https://www.cnblogs.com/mttcug/p/8004359.html
- 程序员不可不知的Linux性能工具
前言 在实际开发中,有时候会收到一些服务的监控报警,比如CPU飙高,内存飙高等,这个时候,我们会登录到服务器上进行排查.本篇博客将涵盖这方面的知识:Linux性能工具. 一次线上问题排查模拟 背景:服 ...