您的位置:首页 > 其它

Follow 在地图中使地图和人物一起运动

2015-06-05 21:59 197 查看

Follow 在地图中使地图和人物一起运动

bool HelloWorld::init()
{
//////////////////////////////
// 1. super init first
if ( !Layer::init() )
{
return false;
}

Size visibleSize = Director::getInstance()->getVisibleSize();
Vec2 origin = Director::getInstance()->getVisibleOrigin();

// add "HelloWorld" splash screen"
auto sprite = Sprite::create("HelloWorld.png");

// position the sprite on the center of the screen
sprite->setPosition(Vec2(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));

// add the sprite as a child to this layer
this->addChild(sprite, 0);

///////// Follow  在地图中使地图和人物一起运动  //////////

Sprite* sprite1 = Sprite::create("button.png");
sprite1->setPosition(Vec2(visibleSize.width * 0.2, visibleSize.height * 0.5));
this->addChild(sprite1);

Sprite* sprite2 = Sprite::create("CloseNormal.png");
sprite2->setPosition(Vec2(visibleSize.width * 0.8, visibleSize.height * 0.8));
this->addChild(sprite2);

ActionInterval *move = MoveTo::create(2, Vec2(visibleSize.width * 0.4, visibleSize.height * 0.5));

// 参数(跟随的节点,跟随的范围)(sprite1:跟随精灵, CCRectZero:一直跟随);
Follow *follow = Follow::create(sprite1, CCRectZero);

log("sprite1  %f, %f", sprite1->getPositionX(), sprite1->getPositionY());
log("sprite2  %f, %f", sprite2->getPositionX(), sprite2->getPositionY());

ActionInstant *funcN = CallFuncN::create(this, callfuncN_selector(HelloWorld::funcNCallBack));
//sprite1->setTag(111);
sprite1->runAction(Sequence::create(move ,funcN,nullptr));

sprite2->runAction(follow);

///////// follow  在地图中使地图和人物一起运动  //////////

return true;
}

// 获取精灵的回调函数;精灵变大 3 倍
void HelloWorld::funcNCallBack(Node *pSender){

Sprite* sprite = (Sprite*)pSender;
ActionInterval *scale = ScaleTo::create(1.0f, 3.0f);
sprite->runAction(scale);

log("sprite  %f, %f", sprite->getPositionX(), sprite->getPositionY());

}


控制台显示内容

sprite1 192.000000, 320.000000
sprite2 768.000000, 512.000000

sprite1 384.000000, 320.000000
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: