dmuratshin 9 éve
szülő
commit
e5f65efb07
3 módosított fájl, 22 hozzáadás és 0 törlés
  1. 5 0
      oxygine/src/Box9Sprite.cpp
  2. 2 0
      oxygine/src/Box9Sprite.h
  3. 15 0
      oxygine/src/Sprite.cpp

+ 5 - 0
oxygine/src/Box9Sprite.cpp

@@ -125,6 +125,11 @@ namespace oxygine
         return Actor::getDestRect();
         return Actor::getDestRect();
     }
     }
 
 
+    bool Box9Sprite::isOn(const Vector2 &localPosition, float localScale)
+    {
+        return Actor::isOn(localPosition, localScale);
+    }
+
     void Box9Sprite::prepare()
     void Box9Sprite::prepare()
     {
     {
         _guidesX.resize(4);
         _guidesX.resize(4);

+ 2 - 0
oxygine/src/Box9Sprite.h

@@ -32,6 +32,8 @@ namespace oxygine
         void setVerticalGuides(float x1, float x2);
         void setVerticalGuides(float x1, float x2);
         void setHorizontalGuides(float y1, float y2);
         void setHorizontalGuides(float y1, float y2);
 
 
+        bool isOn(const Vector2 &localPosition, float localScale) OVERRIDE;
+
         std::string dump(const dumpOptions&) const;
         std::string dump(const dumpOptions&) const;
 
 
         void serialize(serializedata* data);
         void serialize(serializedata* data);

+ 15 - 0
oxygine/src/Sprite.cpp

@@ -303,10 +303,20 @@ namespace oxygine
 
 
         setAttr(node, "flipX", isFlippedX(), false);
         setAttr(node, "flipX", isFlippedX(), false);
         setAttr(node, "flipY", isFlippedY(), false);
         setAttr(node, "flipY", isFlippedY(), false);
+        setAttrV2(node, "localScale", _localScale, Vector2(1, 1));
 
 
         node.set_name("Sprite");
         node.set_name("Sprite");
     }
     }
 
 
+    Vector2 attr2Vector2(const pugi::xml_attribute &attr, const Vector2& def)
+    {
+        if (!attr)
+            return def;
+        Vector2 v;
+        sscanf(attr.as_string(""), "%f,%f", &v.x, &v.y);
+        return v;
+    }
+
     void Sprite::deserialize(const deserializedata* data)
     void Sprite::deserialize(const deserializedata* data)
     {
     {
         inherited::deserialize(data);
         inherited::deserialize(data);
@@ -321,6 +331,11 @@ namespace oxygine
             setAnimFrame(frame);
             setAnimFrame(frame);
         }
         }
 
 
+
+        _localScale = attr2Vector2(node.attribute("localScale"), Vector2(1, 1));
+        _setSize(_frame.getSize().mult(_localScale));
+
+
         setFlipped(node.attribute("flipX").as_bool(false), node.attribute("flipY").as_bool(false));
         setFlipped(node.attribute("flipX").as_bool(false), node.attribute("flipY").as_bool(false));
     }
     }
 }
 }