前面我们已经讲过了每个小实例的主框架,下面就让我们看一下每个小实例的具体实现。首先,我们要讲的是第一个实例ActionTest里面的第一个小实例Manual Transformation。
显示效果
void ActionManual::onEnter()
{
ActionsDemo::onEnter();
CCSize s = CCDirector::sharedDirector()->getWinSize();
//m_tamara,m_grossini,m_kathia是三个sprite,他们在ActionManual的父类ActionsDemo里被初始化
//这里只是设置一下他们的一些参数
m_tamara->setScaleX( 2.5f);//X轴方向拉伸
m_tamara->setScaleY( -1.0f);//Y轴方向拉伸
m_tamara->setPosition( ccp(100,70) );//位置
m_tamara->setOpacity( 128); //透明度
m_grossini->setRotation( 120);//旋转
m_grossini->setPosition( ccp(s.width/2, s.height/2));//位置
m_grossini->setColor( ccc3( 255,0,0));//颜色
m_kathia->setPosition( ccp(s.width-100, s.height/2));//位置
m_kathia->setColor( ccBLUE);//颜色
}
我们再来看一下这几个sprite的初始化代码
void ActionsDemo::onEnter()
{
CCLayer::onEnter();
// Or you can create an sprite using a filename. only PNG is supported now. Probably TIFF too
m_grossini = CCSprite::create(s_pPathGrossini);
m_grossini->retain();
m_tamara = CCSprite::create(s_pPathSister1);
m_tamara->retain();
m_kathia = CCSprite::create(s_pPathSister2);
m_kathia->retain();
addChild(m_grossini, 1);
addChild(m_tamara, 2);
addChild(m_kathia, 3);
//省略部分代码
}
这里面用到的s_pPathGrossini,s_pPathSister1,s_pPathSister2是在testResource.h里定义的字符串常量,如果愿意,你可以换成自己的sprite路径。
小实验:
(每篇文章最后都会有个小实验,修改部分代码以增加对代码的理解)
1、tamara放到屏幕中间、不拉伸、不设置颜色、90度旋转
2、grossini放到屏幕左上方,X轴拉伸、红色
3、kathia放到屏幕右上方,50%透明
代码:
void ActionManual::onEnter()
{
ActionsDemo::onEnter();
CCSize s = CCDirector::sharedDirector()->getWinSize();
//m_tamara,m_grossini,m_kathia是三个sprite,他们在ActionManual的父类ActionsDemo里被初始化
//这里只是设置一下他们的一些参数
m_tamara->setRotation(90);
m_tamara->setPosition( ccp(s.width/2, s.height/2) );//位置
m_grossini->setScaleX(1.5f);
m_grossini->setPosition( ccp(100, s.height-100));//位置
m_grossini->setColor(ccRED);//颜色
m_kathia->setPosition( ccp(s.width-100, s.height-100));//位置
m_kathia->setOpacity(89);
}
效果: