dmuratshin 9 years ago
parent
commit
ef507ce3d0

+ 2 - 2
examples/Demo/src/TestDrag.h

@@ -137,7 +137,7 @@ public:
                     spSprite c = new Sprite;
                     spSprite c = new Sprite;
                     c->setAnchor(0.5f, 0.5f);
                     c->setAnchor(0.5f, 0.5f);
                     c->setResAnim(resources.getResAnim("snow"));
                     c->setResAnim(resources.getResAnim("snow"));
-                    c->addTween(Actor::TweenAlpha(0), 300)->setDetachActor(true);
+                    c->addTween(Actor::TweenAlpha(0), 300)->detachWhenDone();
                     Vector2 pos = a->local2stage(contact, content);
                     Vector2 pos = a->local2stage(contact, content);
                     c->setPosition(pos);
                     c->setPosition(pos);
                     c->attachTo(contacts);
                     c->attachTo(contacts);
@@ -229,7 +229,7 @@ public:
             t = dragging->addTween(Actor::TweenPosition(basket->getPosition() - basket->getSize() / 2), 500);
             t = dragging->addTween(Actor::TweenPosition(basket->getPosition() - basket->getSize() / 2), 500);
         else
         else
             t = dragging->addTween(Actor::TweenPosition(ball->getPosition() - ball->getSize() / 2), 500);
             t = dragging->addTween(Actor::TweenPosition(ball->getPosition() - ball->getSize() / 2), 500);
-        t->setDetachActor(true);
+        t->detachWhenDone();
         dragging = 0;
         dragging = 0;
     }
     }
 
 

+ 1 - 1
examples/Demo/src/TestManageRes.h

@@ -86,7 +86,7 @@ public:
     void _loaded(Event* event)
     void _loaded(Event* event)
     {
     {
         notify("Loaded!");
         notify("Loaded!");
-        ui->getChild("loading")->addTween(Sprite::TweenAlpha(0), 400)->setDetachActor(true);
+        ui->getChild("loading")->addTween(Sprite::TweenAlpha(0), 400)->detachWhenDone();
 
 
         releaseRef();//added ref earlier from void clicked(id)
         releaseRef();//added ref earlier from void clicked(id)
     }
     }

+ 1 - 1
examples/Demo/src/TestMask.h

@@ -127,7 +127,7 @@ public:
             snow->setY(-50);
             snow->setY(-50);
             snow->attachTo(_masked);
             snow->attachTo(_masked);
 
 
-            snow->addTween(Actor::TweenY(content->getHeight() + 50), 6000)->setDetachActor(true);
+            snow->addTween(Actor::TweenY(content->getHeight() + 50), 6000)->detachWhenDone();
             snow->addTween(Actor::TweenRotation(scalar::randFloat(0, MATH_PI * 2)), 5000);
             snow->addTween(Actor::TweenRotation(scalar::randFloat(0, MATH_PI * 2)), 5000);
         }
         }
     }
     }

+ 2 - 2
examples/Demo/src/TestTouches.h

@@ -44,8 +44,8 @@ public:
             char name[255];
             char name[255];
             safe_sprintf(name, "pressed %d", i);
             safe_sprintf(name, "pressed %d", i);
             tf->setName(name);
             tf->setName(name);
-            tf->setX(5);
-            tf->setY(15 + i * 10);
+            tf->setX(5.0f);
+            tf->setY(15.0f + i * 10.0f);
             tf->attachTo(orange);
             tf->attachTo(orange);
         }
         }
 
 

+ 1 - 1
examples/Demo/src/test.cpp

@@ -230,7 +230,7 @@ void Test::notify(std::string txt, int time)
     spTweenQueue tq = new TweenQueue;
     spTweenQueue tq = new TweenQueue;
     tq->add(Actor::TweenAlpha(255), 300, 1, false, 0, Tween::ease_inExpo);
     tq->add(Actor::TweenAlpha(255), 300, 1, false, 0, Tween::ease_inExpo);
     tq->add(Actor::TweenAlpha(0), 300, 1, false, 1200);
     tq->add(Actor::TweenAlpha(0), 300, 1, false, 1200);
-    tq->setDetachActor(true);
+    tq->detachWhenDone();
     tq->addDoneCallback(CLOSURE(this, &Test::notifyDone));
     tq->addDoneCallback(CLOSURE(this, &Test::notifyDone));
 
 
     sprite->addTween(tq);
     sprite->addTween(tq);

+ 1 - 1
examples/Game/part2/src/Enemy.cpp

@@ -36,6 +36,6 @@ void Enemy::explode()
     {
     {
         //dead, hide it with alpha tween
         //dead, hide it with alpha tween
         _dead = true;
         _dead = true;
-        _view->addTween(Actor::TweenAlpha(0), 300)->setDetachActor(true);
+        _view->addTween(Actor::TweenAlpha(0), 300)->detachWhenDone();
     }
     }
 }
 }

+ 2 - 2
examples/Game/part2/src/Rocket.cpp

@@ -72,9 +72,9 @@ void Rocket::explode()
     //run tween with explosion animation
     //run tween with explosion animation
     spTween tween = anim->addTween(Sprite::TweenAnim(res::ui.getResAnim("explosion")), 1000);
     spTween tween = anim->addTween(Sprite::TweenAnim(res::ui.getResAnim("explosion")), 1000);
     //auto detach sprite when tween is done
     //auto detach sprite when tween is done
-    tween->setDetachActor(true);
+    tween->detachWhenDone();
 
 
     //hide rocket and then detach it
     //hide rocket and then detach it
     tween = _view->addTween(Actor::TweenAlpha(0), 500);
     tween = _view->addTween(Actor::TweenAlpha(0), 500);
-    tween->setDetachActor(true);
+    tween->detachWhenDone();
 }
 }

+ 1 - 1
examples/Game/part3/src/Enemy.cpp

@@ -36,6 +36,6 @@ void Enemy::explode()
     {
     {
         //dead, hide it with alpha tween
         //dead, hide it with alpha tween
         _dead = true;
         _dead = true;
-        _view->addTween(Actor::TweenAlpha(0), 300)->setDetachActor(true);
+        _view->addTween(Actor::TweenAlpha(0), 300)->detachWhenDone();
     }
     }
 }
 }

+ 2 - 2
examples/Game/part3/src/Rocket.cpp

@@ -72,9 +72,9 @@ void Rocket::explode()
     //run tween with explosion animation
     //run tween with explosion animation
     spTween tween = anim->addTween(Sprite::TweenAnim(res::ui.getResAnim("explosion")), 1000);
     spTween tween = anim->addTween(Sprite::TweenAnim(res::ui.getResAnim("explosion")), 1000);
     //auto detach sprite when tween is done
     //auto detach sprite when tween is done
-    tween->setDetachActor(true);
+    tween->detachWhenDone();
 
 
     //hide rocket and then detach it
     //hide rocket and then detach it
     tween = _view->addTween(Actor::TweenAlpha(0), 500);
     tween = _view->addTween(Actor::TweenAlpha(0), 500);
-    tween->setDetachActor(true);
+    tween->detachWhenDone();
 }
 }

+ 1 - 1
examples/Game/part3/src/Scene.cpp

@@ -11,7 +11,7 @@ void Scene::changeScene(spScene next)
     //hide current scene
     //hide current scene
     spTween tween = _view->addTween(Actor::TweenAlpha(0), 300);
     spTween tween = _view->addTween(Actor::TweenAlpha(0), 300);
     //detach when done
     //detach when done
-    tween->setDetachActor(true);
+    tween->detachWhenDone();
 
 
     //show next scene
     //show next scene
     getStage()->addChild(next->getView());
     getStage()->addChild(next->getView());

+ 1 - 1
examples/Game/part4/src/Enemy.cpp

@@ -36,6 +36,6 @@ void Enemy::explode()
     {
     {
         //dead, hide it with alpha tween
         //dead, hide it with alpha tween
         _dead = true;
         _dead = true;
-        _view->addTween(Actor::TweenAlpha(0), 300)->setDetachActor(true);
+        _view->addTween(Actor::TweenAlpha(0), 300)->detachWhenDone();
     }
     }
 }
 }

+ 2 - 2
examples/Game/part4/src/Rocket.cpp

@@ -72,9 +72,9 @@ void Rocket::explode()
     //run tween with explosion animation
     //run tween with explosion animation
     spTween tween = anim->addTween(Sprite::TweenAnim(res::ui.getResAnim("explosion")), 1000);
     spTween tween = anim->addTween(Sprite::TweenAnim(res::ui.getResAnim("explosion")), 1000);
     //auto detach sprite when tween is done
     //auto detach sprite when tween is done
-    tween->setDetachActor(true);
+    tween->detachWhenDone();
 
 
     //hide rocket and then detach it
     //hide rocket and then detach it
     tween = _view->addTween(Actor::TweenAlpha(0), 500);
     tween = _view->addTween(Actor::TweenAlpha(0), 500);
-    tween->setDetachActor(true);
+    tween->detachWhenDone();
 }
 }

+ 1 - 1
examples/Game/part4/src/Scene.cpp

@@ -31,7 +31,7 @@ void Scene::hide()
 {
 {
     spTween tween = _view->addTween(Actor::TweenAlpha(0), 300);
     spTween tween = _view->addTween(Actor::TweenAlpha(0), 300);
     //detach when done
     //detach when done
-    tween->setDetachActor(true);
+    tween->detachWhenDone();
     //and call Scene::hidden
     //and call Scene::hidden
     tween->addDoneCallback(CLOSURE(this, &Scene::hidden));
     tween->addDoneCallback(CLOSURE(this, &Scene::hidden));
 }
 }

+ 1 - 1
examples/Game/part5/src/Enemy.cpp

@@ -36,6 +36,6 @@ void Enemy::explode()
     {
     {
         //dead, hide it with alpha tween
         //dead, hide it with alpha tween
         _dead = true;
         _dead = true;
-        _view->addTween(Actor::TweenAlpha(0), 300)->setDetachActor(true);
+        _view->addTween(Actor::TweenAlpha(0), 300)->detachWhenDone();
     }
     }
 }
 }

+ 2 - 2
examples/Game/part5/src/Rocket.cpp

@@ -72,9 +72,9 @@ void Rocket::explode()
     //run tween with explosion animation
     //run tween with explosion animation
     spTween tween = anim->addTween(Sprite::TweenAnim(res::ui.getResAnim("explosion")), 1000);
     spTween tween = anim->addTween(Sprite::TweenAnim(res::ui.getResAnim("explosion")), 1000);
     //auto detach sprite when tween is done
     //auto detach sprite when tween is done
-    tween->setDetachActor(true);
+    tween->detachWhenDone();
 
 
     //hide rocket and then detach it
     //hide rocket and then detach it
     tween = _view->addTween(Actor::TweenAlpha(0), 500);
     tween = _view->addTween(Actor::TweenAlpha(0), 500);
-    tween->setDetachActor(true);
+    tween->detachWhenDone();
 }
 }

+ 1 - 1
examples/Game/part5/src/Scene.cpp

@@ -31,7 +31,7 @@ void Scene::hide()
 {
 {
     spTween tween = _view->addTween(Actor::TweenAlpha(0), 300);
     spTween tween = _view->addTween(Actor::TweenAlpha(0), 300);
     //detach when done
     //detach when done
-    tween->setDetachActor(true);
+    tween->detachWhenDone();
     //and call Scene::hidden
     //and call Scene::hidden
     tween->addDoneCallback(CLOSURE(this, &Scene::hidden));
     tween->addDoneCallback(CLOSURE(this, &Scene::hidden));
 }
 }

+ 1 - 1
examples/HelloWorld/src/example.cpp

@@ -119,7 +119,7 @@ public:
 
 
         //and remove sprite from tree when tweenQueue is empty
         //and remove sprite from tree when tweenQueue is empty
         //if you don't hold any references to sprite it would be deleted automatically
         //if you don't hold any references to sprite it would be deleted automatically
-        tweenQueue->setDetachActor(true);
+        tweenQueue->detachWhenDone();
     }
     }
 };
 };
 //declare spMainActor as intrusive_ptr holder of MainActor
 //declare spMainActor as intrusive_ptr holder of MainActor

+ 1 - 1
oxygine/src/DebugActor.cpp

@@ -516,7 +516,7 @@ namespace oxygine
         cr->setTouchEnabled(false);
         cr->setTouchEnabled(false);
         cr->setColor(Color(rand() % 255, rand() % 255, rand() % 255, 0));
         cr->setColor(Color(rand() % 255, rand() % 255, rand() % 255, 0));
         cr->setSize(actor->getSize());
         cr->setSize(actor->getSize());
-        cr->addTween(ColorRectSprite::TweenColor(Color(Color::White, 200)), 700, 1, true, 0, Tween::ease_inCubic)->setDetachActor(true);
+        cr->addTween(ColorRectSprite::TweenColor(Color(Color::White, 200)), 700, 1, true, 0, Tween::ease_inCubic)->detachWhenDone();
         actor->addChild(cr);
         actor->addChild(cr);
         std::string dmp = actor->dump(0);
         std::string dmp = actor->dump(0);
         log::messageln(">>>>>>>>>>>>>>>>>>>>\ntouched actor '%s' local pos: (%.0f,%.0f), pos: (%.0f,%.0f)\n%s",
         log::messageln(">>>>>>>>>>>>>>>>>>>>\ntouched actor '%s' local pos: (%.0f,%.0f), pos: (%.0f,%.0f)\n%s",

+ 7 - 5
oxygine/src/Event.h

@@ -19,6 +19,9 @@ namespace oxygine
             phase_bubbling
             phase_bubbling
         };
         };
 
 
+        Event(eventType Type, bool Bubbles = false) : listenerID(0), userData(0), type(Type), phase(phase_target), bubbles(Bubbles), stopsImmediatePropagation(false), stopsPropagation(false) {}
+        virtual ~Event() {}
+
         eventType type;
         eventType type;
         Phase phase;
         Phase phase;
         bool bubbles;
         bool bubbles;
@@ -29,11 +32,10 @@ namespace oxygine
         spObject userDataObject;
         spObject userDataObject;
         int listenerID;
         int listenerID;
 
 
-        spEventDispatcher target; //The event target
-        spEventDispatcher currentTarget;// The object that is actively processing the Event object with an event listener.
-
-        Event(eventType Type, bool Bubbles = false) : listenerID(0), userData(0), type(Type), phase(phase_target), bubbles(Bubbles), stopsImmediatePropagation(false), stopsPropagation(false) {}
-        virtual ~Event() {}
+        /**The event target*/
+        spEventDispatcher target;
+        /**The object that is actively processing the Event object with an event listener*/
+        spEventDispatcher currentTarget;
 
 
         void stopPropagation() { stopsPropagation = true; }
         void stopPropagation() { stopsPropagation = true; }
         void stopImmediatePropagation() { stopsPropagation = stopsImmediatePropagation = true; }
         void stopImmediatePropagation() { stopsPropagation = stopsImmediatePropagation = true; }

+ 3 - 7
oxygine/src/TouchEvent.h

@@ -26,18 +26,14 @@ namespace oxygine
 
 
         TouchEvent(eventType type, bool Bubbles = true, const Vector2& locPosition = Vector2(0, 0)) : Event(type, Bubbles), localPosition(locPosition), position(locPosition), mouseButton(MouseButton_Touch), pressure(1.0f), index(1), __clickDispatched(false) {}
         TouchEvent(eventType type, bool Bubbles = true, const Vector2& locPosition = Vector2(0, 0)) : Event(type, Bubbles), localPosition(locPosition), position(locPosition), mouseButton(MouseButton_Touch), pressure(1.0f), index(1), __clickDispatched(false) {}
 
 
-        /**
-        position in local space for Event::currentTarget Actor
-        */
+        /**position in local space for Event::currentTarget Actor*/
         Vector2 localPosition;
         Vector2 localPosition;
-        /**
-        position in local space for Event::target actor
-        */
+        /**position in local space for Event::target actor*/
         Vector2 position;
         Vector2 position;
 
 
         float pressure;
         float pressure;
 
 
-        MouseButton mouseButton;//valid only for TouchUP/Down events
+        MouseButton mouseButton;
         pointer_index index;
         pointer_index index;
 
 
         const PointerState* getPointer() const;
         const PointerState* getPointer() const;

+ 8 - 6
oxygine/src/Tween.h

@@ -108,8 +108,8 @@ namespace oxygine
         Actor*      getClient() const { return _client; }
         Actor*      getClient() const { return _client; }
         float       getPercent() const { return _percent; }
         float       getPercent() const { return _percent; }
         spObject    getDataObject() const { return _data; }
         spObject    getDataObject() const { return _data; }
-        spTween&    getNextSibling() { return intr_list::getNextSibling(); }
-        spTween&    getPrevSibling() { return intr_list::getPrevSibling(); }
+        spTween     getNextSibling() { return intr_list::getNextSibling(); }
+        spTween     getPrevSibling() { return intr_list::getPrevSibling(); }
 
 
         bool        isStarted() const { return _status != status_not_started; }
         bool        isStarted() const { return _status != status_not_started; }
         bool        isDone() const { return _status == status_remove; }
         bool        isDone() const { return _status == status_remove; }
@@ -117,12 +117,11 @@ namespace oxygine
         /**set custom user data object to Tween. Could be used for store some useful data*/
         /**set custom user data object to Tween. Could be used for store some useful data*/
         void setDataObject(spObject data) { _data = data; }
         void setDataObject(spObject data) { _data = data; }
         /**add callback would be called when tween done.  Could be added more than one.
         /**add callback would be called when tween done.  Could be added more than one.
-        setDoneCallback is faster because it doesn't allocate memory for list internally
-        */
+        setDoneCallback is faster because it doesn't allocate memory for list internally*/
         void addDoneCallback(const EventCallback& cb);
         void addDoneCallback(const EventCallback& cb);
         /**set Easing function*/
         /**set Easing function*/
         void setEase(EASE ease) { _ease = ease; }
         void setEase(EASE ease) { _ease = ease; }
-        /**set Global Easing functiont */
+        /**set Global Easing function */
         void setGlobalEase(EASE ease) { _globalEase = ease; }
         void setGlobalEase(EASE ease) { _globalEase = ease; }
         /**set Delay before starting tween*/
         /**set Delay before starting tween*/
         void setDelay(timeMS delay) { _delay = delay; }
         void setDelay(timeMS delay) { _delay = delay; }
@@ -133,8 +132,11 @@ namespace oxygine
         void setClient(Actor* client) { _client = client; }
         void setClient(Actor* client) { _client = client; }
         void setTwoSides(bool ts) { _twoSides = ts; }
         void setTwoSides(bool ts) { _twoSides = ts; }
 
 
-        /**delete actor from parent node when tween done*/
+        /**delete actor from parent node when tween done. Deprecated, use detachWhenDone*/
+        OXYGINE_DEPRECATED
         void setDetachActor(bool detach) { _detach = detach; }
         void setDetachActor(bool detach) { _detach = detach; }
+        /**delete actor from parent node when tween done*/
+        void detachWhenDone(bool detach = true) { _detach = detach; }
 
 
         /**immediately completes tween, calls doneCallback and mark tween as completed and removes self from Actor. If tween has infinity loops (=-1) then do nothing*/
         /**immediately completes tween, calls doneCallback and mark tween as completed and removes self from Actor. If tween has infinity loops (=-1) then do nothing*/
         virtual void complete(timeMS deltaTime = TWEEN_COMPLETE_DT);
         virtual void complete(timeMS deltaTime = TWEEN_COMPLETE_DT);