1. #include "HelloWorldScene.h"
  2. #include "SimpleAudioEngine.h"
  3. using namespace cocos2d;
  4. using namespace CocosDenshion;
  5. CCScene* HelloWorld::scene()
  6. {
  7. CCScene *scene = CCScene::create();
  8. HelloWorld *layer = HelloWorld::create();
  9. scene->addChild(layer);
  10. return scene;
  11. }
  12. bool HelloWorld::init()
  13. {
  14. if ( !CCLayer::init() )
  15. {
  16. return false;
  17. }
  18. size = CCDirector::sharedDirector()->getWinSize();
  19. //加一背景
  20. CCLayerColor* background = CCLayerColor::create(ccc4(255, 180, 255, 255), size.width, size.height);
  21. this->addChild(background);
  22. actionIsDone = true;//标示动作是否完毕
  23. createPoker(); //创建扑克
  24. return true;
  25. }
  26. //创建扑克
  27. void HelloWorld::createPoker()
  28. {
  29. //扑克牌正面
  30. CCSprite* pokerFront = CCSprite::create("poker_front.png");
  31. pokerFront->setVisible(false);
  32. pokerFront->setPosition(ccp(size.width/2, size.height/2));
  33. this->addChild(pokerFront,1,123);
  34. //扑克牌反面
  35. CCSprite* pokerBack = CCSprite::create("poker_back.png");
  36. pokerBack->setPosition(pokerFront->getPosition());
  37. this->addChild(pokerBack,1,321);
  38. }
  39. //翻牌动作
  40. void HelloWorld::startOrbitAction()
  41. {
  42. //扑克牌正面
  43. CCSprite* pokerFront = (CCSprite*)this->getChildByTag(123);
  44. //扑克牌反面
  45. CCSprite* pokerBack = (CCSprite*)this->getChildByTag(321);
  46. float orbitTime = 1;
  47. if (pokerFront->isVisible() == false && actionIsDone == true) {
  48. actionIsDone = false;
  49. //第一个參数是旋转的时间,第二个參数是起始半径,第三个參数半径差。第四个參数是起始Z角。
  50. 第五个參数是旋转Z角差。第六个參数是起始X角。最后一个參数旋转X角差,
  51. //顺时钟翻转

            CCOrbitCamera* orbitFront = CCOrbitCamera::create(orbitTime, 1, 0, 270, 90, 0, 0);
  52. CCSequence* sequenceFront = CCSequence::createWithTwoActions(CCShow::create(), orbitFront);
  53. CCTargetedAction* targetFront = CCTargetedAction::create(pokerFront, sequenceFront);
  54. CCOrbitCamera* orbitBack = CCOrbitCamera::create(orbitTime, 1, 0, 0, 90, 0, 0);
  55. pokerBack->runAction(CCSequence::create(orbitBack, CCHide::create(), targetFront, CCCallFunc::create(this, callfunc_selector(HelloWorld::actionIsDownFunc)),NULL));
  56. }else if(pokerFront->isVisible() == true && actionIsDone == true){
  57. actionIsDone = false;
  58. //逆时钟翻转

            CCOrbitCamera* orbitFront = CCOrbitCamera::create(orbitTime, 1, 0, 270, 90, 180, 0);
  59. CCSequence* sequenceFront = CCSequence::createWithTwoActions(CCShow::create(), orbitFront);
  60. CCTargetedAction* targetFront = CCTargetedAction::create(pokerBack, sequenceFront);
  61. CCOrbitCamera* orbitBack = CCOrbitCamera::create(orbitTime, 1, 0, 0, 90, 0, 0);
  62. pokerFront->runAction(CCSequence::create(orbitBack, CCHide::create(), targetFront, CCCallFunc::create(this, callfunc_selector(HelloWorld::actionIsDownFunc)),NULL));
  63. }
  64. }
  65. void HelloWorld::actionIsDownFunc()
  66. {
  67. actionIsDone = true;
  68. }
  69. bool HelloWorld::ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent)
  70. {
  71. //翻牌动作
  72. startOrbitAction();
  73. return true;
  74. }
  75. void HelloWorld::ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent){}
  76. void HelloWorld::ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent){}
  77. void HelloWorld::onEnter()
  78. {
  79. CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this, 0, false);
  80. CCLayer::onEnter();
  81. }
  82. void HelloWorld::onExit()
  83. {
  84. CCDirector::sharedDirector()->getTouchDispatcher()->removeDelegate(this);
  85. CCLayer::onExit();
  86. }
  87. HelloWorld::~HelloWorld(){}

两张扑克牌资源:

               

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc29uZ19odWlfeGlhbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" style="border:none; max-width:100%"> 
        

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc29uZ19odWlfeGlhbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" style="border:none; max-width:100%; font-family:SimSun; color:rgb(51,102,255); font-size:18px">


cocos2dx 利用CCOrbitCamera实现扑克牌翻牌效果的更多相关文章

  1. Cocos2d-x实现简单的翻牌效果

    触发器互联网影响找了很多.有自己的点重写一个复杂的sprite类来实现.简单的操作来对引擎的使用CCOrbitCamera实现,但是,也存在一些问题,后变反了. 我在用的仅仅是一个简单的翻牌效果,点击 ...

  2. cocos2dx翻牌效果示例

    实现类似翻扑克牌的效果 代码如下: OrbitCamera* rotate1; OrbitCamera* rotate2; if(towardRight){//向右翻转 rotate1=OrbitCa ...

  3. 利用div实现遮罩层效果

    利用div实现遮罩层效果就是利用一个全屏.半透明的div遮住页面上其它元素,典型的例子就是百度的登录界面.下面贴出示例代码: <!DOCTYPE html> <html> &l ...

  4. css3之3D翻牌效果

      最近一直在学css3,发现他真的是越来越牛逼.现在的css3已经不在是以前的css了,它能做出的功能效果是我们没法想象的了.它可以实现flash,可以制作一些js能做出来的效果,还可以写出ps做出 ...

  5. 利用MARQUEE实现正在处理效果

    ASP.NET服务器端事件利用MARQUEE实现正在处理效果   前言:ASP.NET同仁们应该都遇到过当触发一个比较耗时的服务器端事件时,页面会处在一个等待的状态(即假死状态),用户体验非常不好,很 ...

  6. css3 翻牌效果

    <!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/h ...

  7. HTML5 CSS3专题 诱人的实例 CSS3打造百度贴吧的3D翻牌效果

    首先感谢w3cfuns的老师~ 今天给大家带来一个CSS3制作的翻牌效果,就是鼠标移到元素上,感觉可以看到元素背后的信息.大家如果制作考验记忆力的连连看.扑克类的游戏神马的,甚至给女朋友写一些话语,放 ...

  8. 使用JS与CSS3的翻转实现3D翻牌效果

    之前我们有讨论过使用CSS3如何实现网页水平翻转的效果,而这次我们介绍的是翻转效果更深一层的应用——3D翻牌效果. 这里我们需要使用flip中轴翻转实现,又因为是3D效果,如果希望呈现一定的3D视角, ...

  9. jQuery精仿手机上的翻牌效果菜单

    代码简介: jQuery精仿手机上的翻牌效果菜单,很平滑的动画翻牌效果,每点击一下菜单,就会翻去一下,貌似很灵敏的动作.注意:如果预览时没看到效果,请刷新一下页面,让jquery载入就行了,在实际使用 ...

随机推荐

  1. Jsp笔记(1)

    1. jsp页面中出现中文乱码怎么解决? <%@ page contentType="text/html; charset=GB2312"%> <%@ page ...

  2. ASP.NET协作应用集成到trsids身份验证服务器的开发流程

    开发Actor协同模块: (参考TRSIDS4.0 协作应用集成手册[asp.net]) ASP.Net协作应用集成到IDS之前,需要开发Actor类实现协作应用回调接口中定义的本地登录.退出.用户信 ...

  3. Cookies欺骗分析与防护

    今天来谈谈cookies欺骗是怎么回事以及如何避免. 用户在登录之后通常会保存用户信息,以便在其他需要权限的页面去验证用户信息是否具有访问权限. 有同学说我在登录的时候已经很注意SQL注入问题了,还有 ...

  4. sqlserver2012 评估期已过问题处理

    由于之前安装sqlserver2012忘记输入序列号,现在出现评估期已过的问题,网上忙活半天,才解决,发现网上叙述都很凌乱,而且只有大意,新手很难操作,所以把我操作的过程分享给大家 1 开始菜单找到s ...

  5. C#将图片字节流转为Base64直接放入html的img标签src属性中

    1,图片要转为byte[], 2,注意加上“data:image/jpeg;base64,”,这里jpeg可以换成其他. string html = "<img src='data:i ...

  6. 武汉科技大学ACM:1005: 华科版C语言程序设计教程(第二版)例题5.8

    Problem Description 老师给小豪出了一道题目:给你两个整数x和n(-10<=x<=10,1<=n<=10),让你求出x^1+x^2+x^3+……+x^n的结果 ...

  7. 利用Format函数格式化时间和日期

    在做机房收费系统的时候,因为需要使用到日期进行查询,所以在数据表中没有使用自动添加日期的功能,而是采用了自定义的格式插入.但由于事先没有对时间转换的格式进行统一,导致后面查询时出现的问题不断. 插入时 ...

  8. Rand

    我看了下网上,是这样的:rand()随机产生一个数(0-65535),加上%后,就是对其它数求余,求余产生的数取决于求余的数.比如,rand()%20;意思是利用rand()的返回值(一个0-6553 ...

  9. 带格式导出数据到Excel

    导出按钮事件 protected void Button1_Click(object sender, EventArgs e)    {        Response.Clear();        ...

  10. centos6.2下安装星际译王stardict3.0

    星际译王是一个Linux下很好的翻译软件. 我的系统是centos6.2 32位版.本来在http://code.google.com/p/stardict-3/downloads/list 上下的源 ...