mirror of https://github.com/axmolengine/axmol.git
Merge branch 'v2_addOnEnterAndOnExitToCCNode' of https://github.com/chengstory/cocos2d-x into compJSB
This commit is contained in:
commit
86d372222c
|
@ -91,6 +91,28 @@ void Component::onExit()
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Component::onAdd()
|
||||||
|
{
|
||||||
|
#if CC_ENABLE_SCRIPT_BINDING
|
||||||
|
if (_scriptType == kScriptTypeJavascript)
|
||||||
|
{
|
||||||
|
if (sendComponentEventToJS(this, kComponentOnAdd))
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void Component::onRemove()
|
||||||
|
{
|
||||||
|
#if CC_ENABLE_SCRIPT_BINDING
|
||||||
|
if (_scriptType == kScriptTypeJavascript)
|
||||||
|
{
|
||||||
|
if (sendComponentEventToJS(this, kComponentOnRemove))
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
void Component::update(float delta)
|
void Component::update(float delta)
|
||||||
{
|
{
|
||||||
#if CC_ENABLE_SCRIPT_BINDING
|
#if CC_ENABLE_SCRIPT_BINDING
|
||||||
|
|
|
@ -38,6 +38,8 @@ class Node;
|
||||||
enum {
|
enum {
|
||||||
kComponentOnEnter,
|
kComponentOnEnter,
|
||||||
kComponentOnExit,
|
kComponentOnExit,
|
||||||
|
kComponentOnAdd,
|
||||||
|
kComponentOnRemove,
|
||||||
kComponentOnUpdate
|
kComponentOnUpdate
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -58,6 +60,8 @@ public:
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter();
|
||||||
virtual void onExit();
|
virtual void onExit();
|
||||||
|
virtual void onAdd();
|
||||||
|
virtual void onRemove();
|
||||||
virtual void update(float delta);
|
virtual void update(float delta);
|
||||||
virtual bool serialize(void* r);
|
virtual bool serialize(void* r);
|
||||||
virtual bool isEnabled() const;
|
virtual bool isEnabled() const;
|
||||||
|
|
|
@ -68,7 +68,7 @@ bool ComponentContainer::add(Component *com)
|
||||||
CC_BREAK_IF(component);
|
CC_BREAK_IF(component);
|
||||||
com->setOwner(_owner);
|
com->setOwner(_owner);
|
||||||
_components->insert(com->getName(), com);
|
_components->insert(com->getName(), com);
|
||||||
com->onEnter();
|
com->onAdd();
|
||||||
ret = true;
|
ret = true;
|
||||||
} while(0);
|
} while(0);
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -85,7 +85,7 @@ bool ComponentContainer::remove(const std::string& name)
|
||||||
CC_BREAK_IF(iter == _components->end());
|
CC_BREAK_IF(iter == _components->end());
|
||||||
|
|
||||||
auto com = iter->second;
|
auto com = iter->second;
|
||||||
com->onExit();
|
com->onRemove();
|
||||||
com->setOwner(nullptr);
|
com->setOwner(nullptr);
|
||||||
|
|
||||||
_components->erase(iter);
|
_components->erase(iter);
|
||||||
|
@ -105,7 +105,7 @@ bool ComponentContainer::remove(Component *com)
|
||||||
{
|
{
|
||||||
if (iter->second == com)
|
if (iter->second == com)
|
||||||
{
|
{
|
||||||
com->onExit();
|
com->onRemove();
|
||||||
com->setOwner(nullptr);
|
com->setOwner(nullptr);
|
||||||
_components->erase(iter);
|
_components->erase(iter);
|
||||||
break;
|
break;
|
||||||
|
@ -122,7 +122,7 @@ void ComponentContainer::removeAll()
|
||||||
{
|
{
|
||||||
for (auto iter = _components->begin(); iter != _components->end(); ++iter)
|
for (auto iter = _components->begin(); iter != _components->end(); ++iter)
|
||||||
{
|
{
|
||||||
iter->second->onExit();
|
iter->second->onRemove();
|
||||||
iter->second->setOwner(nullptr);
|
iter->second->setOwner(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1419,6 +1419,11 @@ void Node::onEnter()
|
||||||
if (_onEnterCallback)
|
if (_onEnterCallback)
|
||||||
_onEnterCallback();
|
_onEnterCallback();
|
||||||
|
|
||||||
|
if (_componentContainer && !_componentContainer->isEmpty())
|
||||||
|
{
|
||||||
|
_componentContainer->onEnter();
|
||||||
|
}
|
||||||
|
|
||||||
#if CC_ENABLE_SCRIPT_BINDING
|
#if CC_ENABLE_SCRIPT_BINDING
|
||||||
if (_scriptType == kScriptTypeJavascript)
|
if (_scriptType == kScriptTypeJavascript)
|
||||||
{
|
{
|
||||||
|
@ -1498,6 +1503,11 @@ void Node::onExit()
|
||||||
if (_onExitCallback)
|
if (_onExitCallback)
|
||||||
_onExitCallback();
|
_onExitCallback();
|
||||||
|
|
||||||
|
if (_componentContainer && !_componentContainer->isEmpty())
|
||||||
|
{
|
||||||
|
_componentContainer->onExit();
|
||||||
|
}
|
||||||
|
|
||||||
#if CC_ENABLE_SCRIPT_BINDING
|
#if CC_ENABLE_SCRIPT_BINDING
|
||||||
if (_scriptType == kScriptTypeJavascript)
|
if (_scriptType == kScriptTypeJavascript)
|
||||||
{
|
{
|
||||||
|
|
|
@ -56,6 +56,16 @@ void ComAudio::onExit()
|
||||||
stopAllEffects();
|
stopAllEffects();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ComAudio::onAdd()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void ComAudio::onRemove()
|
||||||
|
{
|
||||||
|
stopBackgroundMusic(true);
|
||||||
|
stopAllEffects();
|
||||||
|
}
|
||||||
|
|
||||||
bool ComAudio::isEnabled() const
|
bool ComAudio::isEnabled() const
|
||||||
{
|
{
|
||||||
return _enabled;
|
return _enabled;
|
||||||
|
|
|
@ -59,6 +59,16 @@ public:
|
||||||
* @lua NA
|
* @lua NA
|
||||||
*/
|
*/
|
||||||
virtual void onExit() override;
|
virtual void onExit() override;
|
||||||
|
/**
|
||||||
|
* @js NA
|
||||||
|
* @lua NA
|
||||||
|
*/
|
||||||
|
virtual void onAdd() override;
|
||||||
|
/**
|
||||||
|
* @js NA
|
||||||
|
* @lua NA
|
||||||
|
*/
|
||||||
|
virtual void onRemove() override;
|
||||||
virtual bool isEnabled() const override;
|
virtual bool isEnabled() const override;
|
||||||
virtual void setEnabled(bool b) override;
|
virtual void setEnabled(bool b) override;
|
||||||
virtual bool serialize(void* r) override;
|
virtual bool serialize(void* r) override;
|
||||||
|
|
|
@ -54,6 +54,18 @@ void ComController::onExit()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ComController::onAdd()
|
||||||
|
{
|
||||||
|
if (_owner != nullptr)
|
||||||
|
{
|
||||||
|
_owner->scheduleUpdate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ComController::onRemove()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
void ComController::update(float delta)
|
void ComController::update(float delta)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,6 +59,16 @@ public:
|
||||||
* @lua NA
|
* @lua NA
|
||||||
*/
|
*/
|
||||||
virtual void onExit() override;
|
virtual void onExit() override;
|
||||||
|
/**
|
||||||
|
* @js NA
|
||||||
|
* @lua NA
|
||||||
|
*/
|
||||||
|
virtual void onAdd() override;
|
||||||
|
/**
|
||||||
|
* @js NA
|
||||||
|
* @lua NA
|
||||||
|
*/
|
||||||
|
virtual void onRemove() override;
|
||||||
virtual void update(float delta) override;
|
virtual void update(float delta) override;
|
||||||
virtual bool isEnabled() const override;
|
virtual bool isEnabled() const override;
|
||||||
virtual void setEnabled(bool b) override;
|
virtual void setEnabled(bool b) override;
|
||||||
|
|
|
@ -68,6 +68,22 @@ void ComRender::onExit()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ComRender::onAdd()
|
||||||
|
{
|
||||||
|
if (_owner != nullptr)
|
||||||
|
{
|
||||||
|
_owner->addChild(_render);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ComRender::onRemove()
|
||||||
|
{
|
||||||
|
if (_owner != nullptr)
|
||||||
|
{
|
||||||
|
_owner->removeChild(_render, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
cocos2d::Node* ComRender::getNode()
|
cocos2d::Node* ComRender::getNode()
|
||||||
{
|
{
|
||||||
return _render;
|
return _render;
|
||||||
|
|
|
@ -57,6 +57,16 @@ public:
|
||||||
* @lua NA
|
* @lua NA
|
||||||
*/
|
*/
|
||||||
virtual void onExit() override;
|
virtual void onExit() override;
|
||||||
|
/**
|
||||||
|
* @js NA
|
||||||
|
* @lua NA
|
||||||
|
*/
|
||||||
|
virtual void onAdd() override;
|
||||||
|
/**
|
||||||
|
* @js NA
|
||||||
|
* @lua NA
|
||||||
|
*/
|
||||||
|
virtual void onRemove() override;
|
||||||
virtual bool serialize(void* r) override;
|
virtual bool serialize(void* r) override;
|
||||||
virtual cocos2d::Node* getNode();
|
virtual cocos2d::Node* getNode();
|
||||||
virtual void setNode(cocos2d::Node *node);
|
virtual void setNode(cocos2d::Node *node);
|
||||||
|
|
|
@ -18,9 +18,9 @@ bool EnemyController::init()
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnemyController::onEnter()
|
void EnemyController::onAdd()
|
||||||
{
|
{
|
||||||
ComController::onEnter();
|
ComController::onAdd();
|
||||||
// Determine where to spawn the target along the Y axis
|
// Determine where to spawn the target along the Y axis
|
||||||
Size winSize = Director::getInstance()->getVisibleSize();
|
Size winSize = Director::getInstance()->getVisibleSize();
|
||||||
float minY = getOwner()->getContentSize().height/2;
|
float minY = getOwner()->getContentSize().height/2;
|
||||||
|
@ -52,7 +52,7 @@ void EnemyController::onEnter()
|
||||||
_owner->runAction( Sequence::create(actionMove, actionMoveDone, nullptr) );
|
_owner->runAction( Sequence::create(actionMove, actionMoveDone, nullptr) );
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnemyController::onExit()
|
void EnemyController::onRemove()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,8 +14,8 @@ protected:
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual bool init() override;
|
virtual bool init() override;
|
||||||
virtual void onEnter() override;
|
virtual void onAdd() override;
|
||||||
virtual void onExit() override;
|
virtual void onRemove() override;
|
||||||
virtual void update(float delta) override;
|
virtual void update(float delta) override;
|
||||||
|
|
||||||
static EnemyController* create(void);
|
static EnemyController* create(void);
|
||||||
|
|
|
@ -20,13 +20,13 @@ bool PlayerController::init()
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void PlayerController::onEnter()
|
void PlayerController::onAdd()
|
||||||
{
|
{
|
||||||
ComController::onEnter();
|
ComController::onAdd();
|
||||||
setTouchEnabled(true);
|
setTouchEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PlayerController::onExit()
|
void PlayerController::onRemove()
|
||||||
{
|
{
|
||||||
setTouchEnabled(false);
|
setTouchEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,8 +17,8 @@ public:
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual bool init() override;
|
virtual bool init() override;
|
||||||
virtual void onEnter() override;
|
virtual void onAdd() override;
|
||||||
virtual void onExit() override;
|
virtual void onRemove() override;
|
||||||
virtual void update(float delta) override;
|
virtual void update(float delta) override;
|
||||||
|
|
||||||
static PlayerController* create(void);
|
static PlayerController* create(void);
|
||||||
|
|
|
@ -19,9 +19,9 @@ bool ProjectileController::init()
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProjectileController::onEnter()
|
void ProjectileController::onAdd()
|
||||||
{
|
{
|
||||||
ComController::onEnter();
|
ComController::onAdd();
|
||||||
auto winSize = Director::getInstance()->getVisibleSize();
|
auto winSize = Director::getInstance()->getVisibleSize();
|
||||||
auto origin = Director::getInstance()->getVisibleOrigin();
|
auto origin = Director::getInstance()->getVisibleOrigin();
|
||||||
_owner->setPosition( Vec2(origin.x+20, origin.y+winSize.height/2) );
|
_owner->setPosition( Vec2(origin.x+20, origin.y+winSize.height/2) );
|
||||||
|
@ -30,7 +30,7 @@ void ProjectileController::onEnter()
|
||||||
static_cast<SceneController*>(com)->getProjectiles().pushBack(_owner);
|
static_cast<SceneController*>(com)->getProjectiles().pushBack(_owner);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProjectileController::onExit()
|
void ProjectileController::onRemove()
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,8 +13,8 @@ protected:
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual bool init() override;
|
virtual bool init() override;
|
||||||
virtual void onEnter() override;
|
virtual void onAdd() override;
|
||||||
virtual void onExit() override;
|
virtual void onRemove() override;
|
||||||
virtual void update(float delta) override;
|
virtual void update(float delta) override;
|
||||||
|
|
||||||
static ProjectileController* create(void);
|
static ProjectileController* create(void);
|
||||||
|
|
|
@ -24,16 +24,16 @@ bool SceneController::init()
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SceneController::onEnter()
|
void SceneController::onAdd()
|
||||||
{
|
{
|
||||||
ComController::onEnter();
|
ComController::onAdd();
|
||||||
_fAddTargetTime = 1.0f;
|
_fAddTargetTime = 1.0f;
|
||||||
|
|
||||||
static_cast<ComAudio*>(_owner->getComponent("Audio"))->playBackgroundMusic("background.wav", true);
|
static_cast<ComAudio*>(_owner->getComponent("Audio"))->playBackgroundMusic("background.wav", true);
|
||||||
static_cast<ComAttribute*>(_owner->getComponent("CCComAttribute"))->setInt("KillCount", 0);
|
static_cast<ComAttribute*>(_owner->getComponent("CCComAttribute"))->setInt("KillCount", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SceneController::onExit()
|
void SceneController::onRemove()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,8 +13,8 @@ protected:
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual bool init() override;
|
virtual bool init() override;
|
||||||
virtual void onEnter() override;
|
virtual void onAdd() override;
|
||||||
virtual void onExit() override;
|
virtual void onRemove() override;
|
||||||
virtual void update(float delta) override;
|
virtual void update(float delta) override;
|
||||||
|
|
||||||
static SceneController* create();
|
static SceneController* create();
|
||||||
|
|
Loading…
Reference in New Issue