Ejemplo n.º 1
0
    public Rigidbody2D DoodleRigid; //Переменная от движка RB

    void Start()                    //Функция выполняется только при старте один раз.
    {
        if (instance == null)       //Для реализации переменных в других скриптах.
        {
            instance = this;
        }
    }
Ejemplo n.º 2
0
    //See Destroy tool for simpler destroy understanding.
    //Doodles when destroyed spolit into multiples, thus new doodles must be
    //recreated dynamically.
    public List <Doodle> eraseSphere(Vector3 center, float radius)
    {
        List <List <Vector3> > segs = new List <List <Vector3> >();

        Vector3[] positions = new Vector3[lr.positionCount];
        lr.GetPositions(positions);

        bool pErase    = Vector3.Distance(positions[0], center) < radius;
        bool initErase = pErase;

        segs.Add(new List <Vector3>());
        segs[segs.Count - 1].Add(positions[0]);
        //Find points in the doodle to be erased.
        for (int i = 1; i < positions.Length; ++i)
        {
            bool iErase = Vector3.Distance(positions[i], center) < radius;
            if (iErase == pErase)
            {
                segs[segs.Count - 1].Add(positions[i]);
            }
            else
            {
                Vector3 orig = pErase ? positions[i - 1] : positions[i];
                Vector3 dir  = pErase ? positions[i] - positions[i - 1] : positions[i - 1] - positions[i];
                Vector3 hit  = GeometryUtil.raySphereHit(orig, dir, center, radius);
                segs[segs.Count - 1].Add(hit);
                segs.Add(new List <Vector3>());
                segs[segs.Count - 1].Add(hit);
                segs[segs.Count - 1].Add(positions[i]);
            }

            pErase = iErase;
        }
        if (segs.Count == 1)
        {
            return(new List <Doodle>());
        }
        List <Doodle> doods = new List <Doodle>();

        ItemBase.changeIndex(this.colorIndex);
        //Create new doodles from where the doodle was split.
        foreach (List <Vector3> seg in segs)
        {
            if (!initErase)
            {
                Doodle dood = Instantiate(ItemBase.itemBase.DoodlePrefab).GetComponent <Doodle>();
                dood.gameObject.SetActive(true);
                dood.lr = dood.GetComponent <LineRenderer>();
                ItemBase.itemBase.Add(dood);
                dood.CmdSetPoints(seg.ToArray());
                doods.Add(dood);
                //ItemBase.items.Add(dood);
            }
            initErase = !initErase;
        }
        destroyed = true;
        ItemBase.itemBase.Remove(this);

        return(doods);
    }
Ejemplo n.º 3
0
 //初始步骤
 public void initialize()
 {
     Debug.Log("Gaming initialize");
     isGaming = true;
     life     = 1;
     score    = 0;
     //如果是在线游戏
     if (gameStatus == Constant.GAME_ONLINE)
     {
         //初始化本地玩家状态对象
         playerStatus = new PlayerStatus(playerInfo.id);
         //获取第一页地图
         if (platformInfoQueue.Count <= Constant.MIN_COUNT_OF_PLATFROM_INFO_QUEUE)
         {
             HTTPUtil.getPlatformInfo();
         }
         //初始化远程玩家doodle对象
         playerNum = team.players.Length;
         if (playerNum >= 2)
         {
             playerStatuses = new PlayerStatus[playerNum - 1];
             remoteDoodle   = Doodle.create(getTeamPlayerDoodleType());
             remoteDoodle.gameObject.name = "RemoteDoodle";
             remoteDoodle.isDirvedLocal   = false;
         }
         StatusWorker.work();
     }
     //初始化本地玩家doodle对象
     doodle = Doodle.create(
         doodleType
         );
     //完成初始化
     isInitialized = true;
     UIManager.INSTANCE.loadPlayerPanel();
 }
Ejemplo n.º 4
0
 void Start()
 {
     if (instance == null)
     {
         instance = this;
     }
 }
Ejemplo n.º 5
0
 void Start()
 {
     if (instance == null)                               // теперь можно корректно использовать переменные в других скриптах
     {
         instance = this;
     }
     Time.timeScale = 1f;
 }
Ejemplo n.º 6
0
 void Start()
 {
     if (instance == null)
     {
         instance = this;
     }
     player = GetComponent <Rigidbody2D>();
 }
Ejemplo n.º 7
0
 void Start()
 {
     highScore = PlayerPrefs.GetInt("highScore", 0);
     if (doodle == null)
     {
         doodle = this;
     }
     animation = GetComponent <Animator>();
 }
        public void Converter_WriteJson()
        {
            var doodle = new Doodle {
                x = 5, y = 7, z = 9
            };
            var json = Json.ToJson(doodle, new CustomDataConverter());

            Assert.IsTrue(json.Contains("key-that-isnt-on-object"));
            Assert.IsTrue(json.Contains("another_key"));
        }
Ejemplo n.º 9
0
    public override bool TriggerDown()
    {
        GameObject go = Instantiate(ItemBase.itemBase.DoodlePrefab, controllerPosition, new Quaternion(0, 0, 0, 0));

        go.name = "Doodle " + doodleNum;
        doodleNum++;
        doodle       = go.GetComponent <Doodle>();
        currLineRend = go.GetComponent <LineRenderer>();
        ItemBase.itemBase.Add(doodle);
        return(true);
    }
        public void Converter_WantsExclusiveWrite()
        {
            var doodle = new Doodle {
                x = 5, y = 7, z = 9
            };
            var json = Json.ToJson(doodle, new WantsExclusiveWriteConverter());

            Assert.IsTrue(json.Contains("key-that-isnt-on-object"));
            Assert.IsTrue(json.Contains("another_key"));
            Assert.IsTrue(json.Contains("string_array"));
            Assert.IsFalse(json.Contains("x"));
        }
Ejemplo n.º 11
0
    //创建Doodle
    public static Doodle create(int type)
    {
        //创建doodle
        GameObject doodlePrefab = Resources.Load <GameObject> ("Doodle");
        GameObject doodleObject = Instantiate <GameObject> (
            doodlePrefab
            );
        Doodle doodle = doodleObject.AddComponent <Doodle> ();

        doodle.type = type;
        doodle.setSkin(doodleObject, type);
        doodle.transform.SetParent(UIManager.INSTANCE.gaming);
        return(doodle);
    }
        public void Converter_OnFoundCustomData()
        {
            var settings = new JsonSettings {
                TypeConverters = new JsonTypeConverter[] { new CustomDataConverter() }
            };
            var doodle = new Doodle {
                x = 5, y = 7, z = 9
            };
            var json = Json.ToJson(doodle, settings);

            var newDoodle = Json.FromJson <Doodle>(json, settings);

            Assert.AreEqual(2, newDoodle.totalOrphanedKeys);
            Assert.AreNotEqual(doodle.totalOrphanedKeys, newDoodle.totalOrphanedKeys);
        }
Ejemplo n.º 13
0
 //加载玩家信息
 public void loadPlayerPanel()
 {
     if (GameManager.INSTANCE.gaming.isGaming)
     {
         //加载玩家面板
         GameObject prefab1 = Resources.Load <GameObject> ("panel/player1");
         //生成
         panel1 = Instantiate <GameObject> (
             prefab1,
             new Vector3(120f, 974f, 0f),
             Quaternion.identity
             ).transform;
         //设置父对象
         panel1.transform.SetParent(GameManager.INSTANCE.canvas.transform);
         text1 = panel1.transform.GetComponentInChildren <Text> ();
         //头像
         avator1 = Instantiate <GameObject> (
             Resources.Load <GameObject> ("avator/" + Doodle.getSkinName(
                                              GameManager.INSTANCE.gaming.doodleType
                                              )),
             new Vector3(-2.48f, 7.63f, 0f),
             Quaternion.identity
             ).transform;
         avator1.transform.SetParent(Camera.main.transform);
         //加载队友
         if (GameManager.INSTANCE.gaming.playerNum == 2)
         {
             GameObject prefab2 = Resources.Load <GameObject> ("panel/player2");
             //生成
             panel2 = Instantiate <GameObject> (
                 prefab2,
                 new Vector3(360, 974f, 0f),
                 Quaternion.identity
                 ).transform;
             //设置父对象
             panel2.transform.SetParent(GameManager.INSTANCE.canvas.transform);
             text2 = panel2.transform.GetComponentInChildren <Text> ();
             //头像
             avator2 = Instantiate <GameObject> (
                 Resources.Load <GameObject> ("avator/" + Doodle.getSkinName(GameManager.INSTANCE.gaming.getTeamPlayerDoodleType())),
                 new Vector3(-0.624f, 7.63f, 0f),
                 Quaternion.identity
                 ).transform;
             avator2.transform.SetParent(Camera.main.transform);
         }
     }
 }
        public void Converter_ObjectFactory()
        {
            var doodle = new Doodle {
                x = 5, y = 7, z = 9
            };
            var json = Json.ToJson(doodle);

            var settings = new JsonSettings {
                TypeConverters = new JsonTypeConverter[] { new ObjectFactoryConverter() }
            };
            var newDoodle = Json.FromJson <Doodle>(json, settings);

            Assert.IsTrue(newDoodle.wasCreatedByObjectFactory);

            Assert.AreEqual(newDoodle.x, doodle.x);
            Assert.AreEqual(newDoodle.y, doodle.y);
            Assert.AreEqual(newDoodle.z, doodle.z);
        }
Ejemplo n.º 15
0
    //deprecated
    public void erasePoint(Vector3 p)
    {
        Vector3[] verts = new Vector3[lr.positionCount];
        lr.GetPositions(verts);

        int index = -1;

        for (int i = 0; i < lr.positionCount; ++i)
        {
            if (verts[i] == p)
            {
                index = i;
                break;
            }
        }
        if (index == -1)
        {
            Debug.LogError("Attempted to erase non-existent point " + p);
        }
        else if (index <= 1)    //front end
        {
            for (int i = index; i < lr.positionCount - index - 1; ++i)
            {
                verts[i] = verts[i + index + 1];
            }
            lr.positionCount -= (index + 1);
        }
        else if (index >= lr.positionCount - 1) //back end
        {
            lr.positionCount = index;
        }
        else //somewhere in the middle
        {
            List <Vector3> newDoodPositions = new List <Vector3>();
            for (int i = index; i < lr.positionCount - 1; ++i)
            {
                newDoodPositions.Add(verts[i]);
            }
            lr.positionCount = index - 1;

            Doodle newDood = Instantiate(ItemBase.itemBase.DoodlePrefab).GetComponent <Doodle>();
            newDood.CmdSetPoints(newDoodPositions.ToArray());
        }
    }
Ejemplo n.º 16
0
        }                                       // indicated if closeSound is playing

        /// <summary>
        /// constructor to create a collision manager
        /// </summary>
        /// <param name="game">game</param>
        /// <param name="doodle">doodle sprite</param>
        /// <param name="hitSound">sound when hit</param>
        /// <param name="defeatSound">sound when defeated</param>
        /// <param name="closeSound">sound when monster is in SOS_AREA</param>
        /// <param name="monster">monster sprite</param>
        public DoodleMonsterColMng(Game game, Doodle doodle, SoundEffect hitSound, SoundEffect defeatSound, Song closeSound, Monster monster) : base(game, doodle, hitSound)
        {
            this.monster     = monster;
            this.closeSound  = closeSound;
            this.defeatSound = defeatSound;
        }
Ejemplo n.º 17
0
 /// <summary>
 /// constructor to create a collision manager, cannot be instantiated directly
 /// </summary>
 /// <param name="game">game</param>
 /// <param name="doodle">doodle sprite</param>
 /// <param name="hitSound">sound when hit</param>
 public DoodleColMng(Game game, Doodle doodle, SoundEffect hitSound) : base(game)
 {
     this.doodle   = doodle;
     this.hitSound = hitSound;
 }
Ejemplo n.º 18
0
        }                                               // animation to play when doodle & booster collide

        /// <summary>
        /// constructor to create a collision manager
        /// </summary>
        /// <param name="game">game</param>
        /// <param name="doodle">doodle sprite</param>
        /// <param name="hitSound">sound when hit</param>
        /// <param name="booster">booster sprite</param>
        public DoodleBoosterColMng(Game game, Doodle doodle, SoundEffect hitSound, Booster booster) : base(game, doodle, hitSound)
        {
            this.booster = booster;
        }
        private Animation animation; // animation to play when a doodle hits a platform

        /// <summary>
        /// constructor to create a collision manager
        /// </summary>
        /// <param name="game">game</param>
        /// <param name="doodle">doodle sprite</param>
        /// <param name="platform">animated platform sprite</param>
        /// <param name="hitSound">sound when hit</param>
        /// <param name="animation">animation to play when hit</param>
        public DoodleAnimatedPlatfromColMng(Game game, Doodle doodle,
                                            Platform platform, SoundEffect hitSound, Animation animation) : base(game, doodle, platform, hitSound)
        {
            this.animation = animation;
        }
Ejemplo n.º 20
0
 public static void Roaring(this Doodle doodle)
 {
     doodle.Said();
     Console.WriteLine("THEN IT ROAR FROM EXTENSIONS");
 }