Ejemplo n.º 1
0
 private void RemoveImpl(LandoltData data)
 {
     if (landolts_.ContainsKey(data.id))
     {
         Destroy(landolts_[data.id].gameObject);
         landolts_.Remove(data.id);
     }
 }
Ejemplo n.º 2
0
 private void UpdateImpl(LandoltData data)
 {
     if (!landolts_.ContainsKey(data.id))
     {
         Create(data);
     }
     else
     {
         var landolt = landolts_[data.id];
         landolt.Update(data);
     }
 }
Ejemplo n.º 3
0
 private void CreateImpl(LandoltData data)
 {
     if (!landolts_.ContainsKey(data.id))
     {
         var gameObj = Instantiate(landoltPrefab) as GameObject;
         gameObj.transform.SetParent(GlobalObjects.localStage.transform);
         var landolt = gameObj.GetComponent <Landolt>();
         landolts_.Add(data.id, landolt);
         Sound.Play("LandoltDetected");
     }
     Update(data);
 }
Ejemplo n.º 4
0
    public void Update(LandoltData data)
    {
        if (float.IsNaN(data.pos.x) || float.IsNaN(data.pos.y))
        {
            return;
        }
        if (float.IsInfinity(data.pos.x) || float.IsInfinity(data.pos.y))
        {
            return;
        }

        data_   = data;
        rawPos_ = new Vector3(data.pos.x, 0f, data.pos.y);
        transform.localScale = new Vector3(data_.width * scaleRatio, localScaleY_, data_.height * scaleRatio);
        lostCount_           = 0;

        var dt = Time.time - lastTime_;

        if (dt == 0)
        {
            return;
        }

        velocity_      = (rawPos_ - prePos_) / dt;
        prePos_        = rawPos_;
        angleVelocity_ = (data.angle - preAngle_) / dt;
        currentAngle_  = preAngle_ = data.angle;
        lastTime_      = lastInterpTime_ = Time.time;
        ++updateCount_;
        interpCount_ = 0;

        if (touched_ != data.touched)
        {
            touched_ = data.touched;
            if (touched_)
            {
                SendMessage("OnTouchStart", data.touchPos, SendMessageOptions.DontRequireReceiver);
                Sound.Play("LandoltTouch");
            }
            else
            {
                SendMessage("OnTouchEnd", data.touchPos, SendMessageOptions.DontRequireReceiver);
            }
        }
        else
        {
            if (touched_)
            {
                SendMessage("OnTouchMove", data.touchPos, SendMessageOptions.DontRequireReceiver);
            }
        }
    }
Ejemplo n.º 5
0
    LandoltData convertToLandoltData(JSONNode json)
    {
        LandoltData data = new LandoltData();

        data.id       = json["id"].AsInt;
        data.pos      = new Vector2(sign * json["x"].AsFloat, sign * json["y"].AsFloat);
        data.radius   = json["radius"].AsFloat;
        data.width    = json["width"].AsFloat;
        data.height   = json["height"].AsFloat;
        data.angle    = json["angle"].AsFloat + offsetAngle;
        data.cnt      = 0;
        data.touched  = json["touched"].AsBool;
        data.touchPos = new Vector2(json["touchX"].AsFloat, json["touchY"].AsFloat);

        return(data);
    }
Ejemplo n.º 6
0
 static public void Remove(LandoltData data)
 {
     Instance.RemoveImpl(data);
 }
Ejemplo n.º 7
0
 static public void Update(LandoltData data)
 {
     Instance.UpdateImpl(data);
 }
Ejemplo n.º 8
0
 static public void Create(LandoltData data)
 {
     Instance.CreateImpl(data);
 }