8,305
社区成员
发帖
与我相关
我的任务
分享
bool levelSelector::init() {
if (!Layer::init()) {
return false;
}
else {
auto VisualSize = Director::getInstance()->getVisibleSize();
auto OriginPoint = Director::getInstance()->getVisibleOrigin();
auto selector_bg_sprite = Sprite::create("LevelSelector.png");
auto goNextSprite = Sprite::create("goNextIcon.png");
auto goPreviousSprite = Sprite::create("goPreviousIcon.png");
selector_bg_sprite->setPosition(Point(VisualSize.width / 2 + OriginPoint.x, VisualSize.height / 2 + OriginPoint.y));
goPreviousSprite->setPosition(Point(goPreviousSprite->getContentSize().width, VisualSize.height / 2 ));
goNextSprite->setPosition(Point(VisualSize.width - goNextSprite->getContentSize().width,
VisualSize.height / 2));
selector_bg_sprite->setScale(1.5f);
this->addChild(selector_bg_sprite, 0);
this->addChild(goNextSprite, 0);
this->addChild(goPreviousSprite, 2);
String* pString;
for (int i = 0; i < 20; i++) {
pString = String::createWithFormat("%d", i + 1);
auto imagPath = "level_bg.png";
auto levelSprite = Sprite::create(imagPath);
auto levelLabel = LabelBMFont::create();
levelLabel->setString(pString->getCString());
levelLabel->setColor(ccRED);
//printf_s("%d", pString);
auto x = VisualSize.width / 5 + i % 8 * 80;
auto y = VisualSize.height - (VisualSize.height / 5) - i / 8 * 100;
levelSprite->setPosition(Point(x , y));
levelSprite->setScale(1.0f);
levelSprite->setTag(i + 1);
levelLabel->setPosition(Point(x , y));
this->addChild(levelSprite,0,i+1);
this->addChild(levelLabel, 0);
}
this->setTouchEnabled(true);
auto levelSpriteListener = EventListenerTouchOneByOne::create();
levelSpriteListener->setSwallowTouches(true);
levelSpriteListener->onTouchBegan = [=](Touch* touch, Event* event) {
log("onTouchBegan");
MessageBox("Hellow! onTouchBegan!", "Alert");
return true;
};
levelSpriteListener->onTouchMoved = [=](Touch* touch, Event* event) {
log("onTouchMoved");
MessageBox("Hellow! onTouchMoved!", "Alert");
};
levelSpriteListener->onTouchEnded = [=](Touch* touch, Event* event) {
log("onTouchEnded");
MessageBox("Hellow! onTouchEnded!", "Alert");
};
levelSpriteListener->onTouchBegan = CC_CALLBACK_2(levelSelector::onTouchBegan, this);
levelSpriteListener->onTouchMoved = CC_CALLBACK_2(levelSelector::onTouchMoved, this);
levelSpriteListener->onTouchEnded = CC_CALLBACK_2(levelSelector::onTouchEnded, this);
_eventDispatcher->addEventListenerWithSceneGraphPriority(levelSpriteListener, this);
return true;
} //end else
}
Layer::onEnter();
void levelSelector::onEnter() {
//MessageBox("Hellow! Entering the layer now!", "Alert");
}
但是onEnter不是进入Layer的时候调用的么,怎么会影响到init()里面的代码?求解释……