cocos2d-x之CCCardinalSplineBy
CCCardinalSplineBy概念
这个类是样条曲线动作,其创建函数CCCardinalSplineBy::create(float duration, cocos2d::CCPointArray *points, float tension);中duration是时间间隔,points是控制点列表,tension是松紧程度。tension==1时,样条线是分段直线。tension<1向外松弛弯曲,tension>1向内缩紧弯曲。By动作是以当前坐标为新坐标原点。
CCCardinalSplineBy示例–为同一组控制点实现不同的移动路径
CCSize s =CCDirector::sharedDirector()->getWinSize();CCPointArray*array =CCPointArray::create(20);
array->addControlPoint(ccp(0,0));
array->addControlPoint(ccp(s.width/2-30,0));
array->addControlPoint(ccp(s.width/2-30, s.height-80));
array->addControlPoint(ccp(0, s.height-80));
array->addControlPoint(ccp(0,0));
//
// sprite 1 (By)
//
// Spline with no tension (tension==0)
//
CCCardinalSplineBy*action =CCCardinalSplineBy::create(3, array,0);
CCActionInterval*reverse = action->reverse();
CCFiniteTimeAction*seq =CCSequence::create(action, reverse, NULL); m_tamara->setPosition(ccp(50,50));
m_tamara->runAction(seq);
//
// sprite 2 (By)
//
// Spline with high tension (tension==1)
//
CCCardinalSplineBy*action2 =CCCardinalSplineBy::create(3, array,1);
CCActionInterval*reverse2 = action2->reverse();
CCFiniteTimeAction*seq2 =CCSequence::create(action2, reverse2, NULL); m_kathia->setPosition(ccp(s.width/2,50));
m_kathia->runAction(seq2);
由于By动作是以当前坐标为新坐标原点,所以在draw函数里设置openGL的原点位置
// move to 50,50 since the "by" path will start at 50,50
kmGLPushMatrix();
kmGLTranslatef(50,50,0);
ccDrawCardinalSpline(m_pArray,0,100);
kmGLPopMatrix();CCSize s =CCDirector::sharedDirector()->getWinSize(); kmGLPushMatrix();
kmGLTranslatef(s.width/2,50,0);
ccDrawCardinalSpline(m_pArray,1,100);
kmGLPopMatrix();
效果图如下: 注:
CCPointArray解释
CCPointArray是一个包含控制点的数组,使用方法如上
cocos2d-x之CCCardinalSplineBy的更多相关文章
- CCCardinalSplineBy概念
cardianl 红衣主教 这个类是样条曲线动作, 其创建函数是CCCardinalSplineBy::create(float duration, cocos2d::CCPointArray *po ...
- 小尝试一下 cocos2d
好奇 cocos2d 到底是怎样一个框架,正好有个项目需要一个游戏框架,所以稍微了解了一下.小结一下了解到的情况. 基本概念 首先呢,因为 cocos2d 是基于 pyglet 做的,你完全可以直接用 ...
- 采用cocos2d-x lua 制作数字滚动效果样例
require "Cocos2d"require "Cocos2dConstants"local testscene = class("testsce ...
- Cocos2d 利用继承Draw方法制作可显示三维数据(宠物三维等)的三角形显示面板
很久没有写博客了,这段时间比较忙,又是搬家又是做自己的项目,还有太多琐碎的事情缠身,好不容易抽出时间把最近自己做的一些简单例子记录一下. 在我的项目中,我需要一个显示面板来显示游戏中的一个三维数据,例 ...
- iPhone开发与cocos2d 经验谈
转CSDN jilongliang : 首先,对于一个完全没有mac开发经验,甚至从没摸过苹果系统的开发人员来说,首先就是要熟悉apple的那一套开发框架(含开发环境IDE.开发框架uikit,还有开 ...
- cocos2d学习记录
视频 - http://www.manew.com/forum-105-3.html一个论坛帖 - http://www.zhihu.com/question/21114802官网 - http:// ...
- Android下Cocos2d创建HelloWorld工程
最近在搭建Cocos2d的环境,结果各种问题,两人弄了一天才能搞好一个环境-! -_-!! 避免大家也可能会遇到我这种情况,所以写一个随笔,让大家也了解下如何搭建吧- 1.环境安装准备 下载 tadp ...
- 学生信息管理系统(cocos2d引擎)——数据结构课程设计
老师手把手教了两天半,看了一下模式,加了几个功能就大功告成了!!! 给我的感想就是全都是指针! 添加图片精灵: CCSprite* spBG = CCSprite::create("&qu ...
- cocos2d触碰例子代码
// // TestLayer.h // MiniTD // // Created by OnePiece on 12-7-30. // Copyright 2012年 __MyCompanyName ...
随机推荐
- 洛谷P2289 [HNOI2004]邮递员(插头dp)
传送门 太神仙了……讲不来讲不来->这里 //minamoto #include<iostream> #include<cstdio> #include<cstri ...
- AcDbDictionary of AcDbDatabase
GroupDictionary MLStyleDictionary LayoutDictionary PlotStyleNameDictionary MaterialDictionary Visual ...
- SpringBoot2.0 基础案例(06):引入JdbcTemplate,和多数据源配置
一.JdbcTemplate对象 1.JdbcTemplate简介 在Spring Boot2.0框架下配置数据源和通过JdbcTemplate访问数据库的案例. SpringBoot对数据库的操作在 ...
- 源码构建Apollo以及改造
1. 下载release版本 本次构建的是1.4.0的版本 2. 初始化数据库信息 数据库表信息 2.1 修改注册中心配置 初始化数据库表后,需要修改 ApolloConfigDB.ServerCon ...
- sql 查询重复数据
select user_name,count(*) as count from comm_user group by user_name having count>1;
- compass初探
1.安装compass: sudo gem install compass 如果你用的是Windows系统,那么要省略前面的sudo. 2.项目初始化 接下来,(首先要进入目标目录.)要创建一个你的C ...
- Ocelot实现API网关服务
NET Core微服务之基于Ocelot实现API网关服务 https://www.cnblogs.com/edisonchou/p/api_gateway_ocelot_foundation_01. ...
- T-SQL多个小计+合计,分类汇总
select then '合计' else cast(姓名 as varchar) end 姓名, then '姓名小计' else cast(学期 as varchar) end 学期, case ...
- [原]Maven项目编译后classes文件中没有.xml问题
在做spring+mybatiss时,自动扫描都配置正确了,却在运行时出现了如下错误.后来查看target/classes/.../dao/文件夹下,发现只有mapper的class文件,而没有xml ...
- c#基础 path 类的各种套路
string str = @"C:\3000soft\Red Spider\Data\Message\老赵.wav"; //获得文件名 Console.WriteLine(Path ...