用两个图片初始化两个CCSprite,一样的大小,重叠在一起,分别叫做 foregroundNode 和 backgroundNode 。

- (void)flipover
{
if (isFliping) {
return;
}
[self chooseCard];
} -(void) chooseCard
{
isFliping = YES;
CCSprite *fore = nil;
CCSprite *back = nil;
if (flipovered) {
fore = self.foregroundNode;
back = self.backgroundNode;
}else{
fore = self.backgroundNode;
back = self.foregroundNode;
} //始终保证前面的图像是未横向翻转过的,后面的图像是翻转过的
if ([back flipX] == NO) {
[back setFlipX:YES];
}
if ([fore flipX] == YES) {
[fore setFlipX:NO];
} //执行动画的时间
float orbitTime = 0.3; //前景图像转动90度不可见
[fore runAction:[CCSequence actions:[CCOrbitCamera actionWithDuration:orbitTime radius: deltaRadius: angleZ: deltaAngleZ: angleX: deltaAngleX:],[CCCallFunc actionWithTarget:self selector:@selector(showCard:)], nil]]; //背景图像同步旋转,当前景图像停止动画时,背景图像继续旋转90度,此时图像左右是翻转的,为了保证看着的图像是正常的,所以在执行动画前要翻转一次
[back runAction:[CCSequence actions:[CCOrbitCamera actionWithDuration:orbitTime* radius: deltaRadius: angleZ: deltaAngleZ: angleX: deltaAngleX:], [CCCallFunc actionWithTarget:self selector:@selector(flipFinished)], nil]];
} // 翻转后,调整前后景图像的层次
-(void)showCard:(id)sender
{
if (flipovered) {
[self.foregroundNode setZOrder:];
[self.backgroundNode setZOrder:];
}else{
[self.foregroundNode setZOrder:];
[self.backgroundNode setZOrder:];
}
flipovered = !flipovered;
} - (void)flipFinished
{
isFliping = NO;
}

cocos2d - 翻转两个Sprite的更多相关文章

  1. cocos2d中两种移动的算法

    在对cocos2d的sprite处理移动的过程中,通常用到的两种移动的算法: 假设这个CCNode是直接放在CCLayer上的 距离差法: CGPoint curTouchPosUI = [touch ...

  2. Sprite Kit 入门教程

    Sprite Kit 入门教程  Ray Wenderlich on September 30, 2013 Tweet 这篇文章还可以在这里找到 英语, 日语 If you're new here, ...

  3. Learning Cocos2d-x for WP8(7)——让Sprite动起来

    原文:Learning Cocos2d-x for WP8(7)--让Sprite动起来 C#(wp7)兄弟篇Learning Cocos2d-x for XNA(7)——让Sprite动起来 本讲将 ...

  4. 【Cocos2d入门教程六】Cocos2d-x事件篇之触摸

    Cocos游戏当中产生一个事件时,可以有多个对象在监听该事件,所以有优先级(Priority).优先级越高(Priority值越小),事件响应越靠前. 关系图: 新 事件分发机制:在2.x 版本事件处 ...

  5. [python][cpp]对浮点数进行n位翻转

    问题 在py编程中,碰到一个小问题,如何把一个浮点数按位反转,这个问题说大不大,说小不小,一开始觉得很容易,后来仔细考虑了一下,没有想像的那么简单. 思路 按照一般的python解决思路,肯定是寻找相 ...

  6. 「Splay」区间翻转

    传送门:>Here< 解法分析 用splay来维护这个序列. 一直没有搞明白的是,这里的splay的节点究竟维护的是什么?是权值吗?肯定不是,因为区间是会翻转的,如果维护权值的话很快平衡树 ...

  7. 洛谷 P2042 [NOI2005]维护数列-Splay(插入 删除 修改 翻转 求和 最大的子序列)

    因为要讲座,随便写一下,等讲完有时间好好写一篇splay的博客. 先直接上题目然后贴代码,具体讲解都写代码里了. 参考的博客等的链接都贴代码里了,有空再好好写. P2042 [NOI2005]维护数列 ...

  8. 7.翻转句子中单词的顺序[ReverseWordOrderInSentence]

    [题目] 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变.句子中单词以空格符隔开.为简单起见,标点符号和普通字母一样处理. 例如输入“I am a student.”,则输出“stud ...

  9. [剑指Offer] 44.翻转单词顺序列

    题目描述 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上.同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思.例如,“student ...

随机推荐

  1. Java后端测试概述

    [本文出自天外归云的博客园] 多种单测技术 1. 要学会Spring MVC/Boot测试中自带的mock方法. 2. 学会junit中的方法,对于注解的使用等. 3. 学会使用结合第三方Mockit ...

  2. java replace方法 无法改变原字符串,使用时需重新赋值

    // TODO:把网页中的链接替换为本地路径及文件名 for (String link : links) { String baseLink = "http://localhost:91/q ...

  3. [Linux基础环境/软件]Linux下安装resin web服务器(涉及gcc、jdk环境部署)

    由于Ubuntu自带是没有jdk和gcc编译器的,而安装resin需要C编译器和jdk的支持,而且resin本身是java写的.另外我本身的网站是zip打包的,所以linux也要安装了gcc.jdk. ...

  4. 回顾一下Unix哲学

    Unix哲学是一些先哲们多方位阐述的,有多种说法.可以概括为以下几点: 模块原则:使用简洁的接口拼合简单的部件. 清晰原则:清晰胜于机巧. 组合原则:设计时考虑拼接组合. 分离原则:策略同机制分离,接 ...

  5. filezilla server老提示connect server

    地址设置成127.0.0.1即可 端口14147 密码为空(也可能是string未测试) 上次登录的默认路径:C:\Users\admin\AppData\Roaming\FileZilla Serv ...

  6. Java编程的逻辑 (48) - 剖析ArrayDeque

    本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...

  7. android开发(27) 看看我的手机里都有什么传感器

    想看看我的HTC ONE x 具有什么传感器.写个代码RUN一下. 代码很简单,直接贴了 package zyf.demo.sensordemo; import java.util.List; imp ...

  8. background-size 导致的背景不居中问题

    1. 理想中的效果是这样的   2. 然后想改一下圆圈的大小   3. 容器大小为偶数,图片大小为奇数,就会使图片并不真正居中,如果仔细量一下,会发现图片上面比下面多1px! 貌似只有 backgro ...

  9. Docker run 命令的使用方法

    [编者的话]在Docker中,run应该是用户使用最多的命令了,很多读者反馈不是很明白run命令的用法,而且相关的书籍.中文资料中对run命令的描述也不是非常完整,所以DockerOne组织翻译了Do ...

  10. onClickRow 事件

    onClickRow: function (rowIndex, rowData) {                        dgonClickRow(rowData.oldCityCode,r ...