Esempio n. 1
0
    public void showEnemy()
    {
        for (int i = 0; i <= enemylist.Count - 1; i++)
        {
            //获取单个敌人数据
            int[]     ZuoBiao  = enemylist[i].zuobiao;
            int       ID       = enemylist[i].enemyID;
            ArrayList datalist = (ArrayList)player.enemyType[ID - 1];
            //实例化敌人
            GameObject enemyObject = (GameObject)Instantiate(Resources.Load(datalist[5].ToString()));
            //根据数据,赋值怪物坐标
            enemyObject.transform.position = new Vector3(ZuoBiao[0] * 0.32f + 0.16f, -ZuoBiao[1] * 0.32f - 0.16f, 0f);
            enemyObject.AddComponent <BoxCollider2D>();
            enemyObject.GetComponent <SpriteRenderer>().sortingOrder = 10;
            //根据数据,赋值怪物属性信息
            enemypro ep = enemyObject.AddComponent <enemypro>();
            ep.enemyTypeID  = datalist[0].ToString();
            ep.Name         = datalist[1].ToString();
            ep.hp           = (int)datalist[2];
            ep.atk          = (int)datalist[3];
            ep.def          = (int)datalist[4];
            ep.prefabName   = datalist[5].ToString();
            ep.deadCoin     = (int)datalist[6];
            ep.deadEmpiric  = (int)datalist[7];
            enemyObject.tag = "enemy";

            gameObject.GetComponent <myTweenAlpha>()._thisSprite.Add(enemyObject);
        }
    }
Esempio n. 2
0
    //两个单位进行决斗
    public void duel(GameObject Player, GameObject enemy)
    {
        GameObject labels   = GameObject.Find("UI Root").transform.Find("main").Find("battlePanel").gameObject;
        playerpro  playerbp = Player.GetComponent <playerpro>();
        enemypro   enemybp  = enemy.GetComponent <enemypro>();
        bool       canFight = true;
        int        i        = 1;

        Debug.Log(playerbp.hp);
        while ((playerbp.atk - enemybp.def) * i < enemybp.hp)
        {
            if ((enemybp.atk - playerbp.def) * i >= playerbp.hp)
            {
                Debug.Log("玩家无法打赢这场战斗");
                canFight = false;

                labels.gameObject.SetActive(false);
                labels.transform.Find("enemysprite").GetComponent <UISprite>().spriteName = "";              //清空sprite
                Destroy(labels.transform.Find("enemysprite").gameObject.GetComponent <UISpriteAnimation>()); //删除动画组件
                break;
            }
            i++;
        }

        if (canFight)
        {
            Debug.Log("开始战斗");
            StartCoroutine(fight(Player, enemy));
            //关闭长按事件
            gameObject.GetComponent <controller>().isBeginLongpush = false;
            gameObject.GetComponent <controller>().isPush          = false;
            gameObject.GetComponent <controller>().maxCd           = 0.8f;
        }
    }
Esempio n. 3
0
    IEnumerator fight(GameObject player0, GameObject enemy)
    {
        playerpro  playerbp = player0.GetComponent <playerpro>();
        enemypro   enemybp  = enemy.GetComponent <enemypro>();
        GameObject labels   = GameObject.Find("UI Root").transform.Find("main").Find("battlePanel").gameObject;

        while (playerbp.hp > 0 && enemybp.hp > 0)
        {
            //玩家出手回合
            if (thisRound == battleRound.player)
            {
                enemybp.hp -= battleSinglehit(playerbp.atk, enemybp.def);
                if (enemybp.hp < 0)
                {
                    enemybp.hp = 0;
                }
                labels.transform.Find("enemy_hp").GetComponent <UILabel>().text = enemybp.hp.ToString();
                thisRound = battleRound.enemy;
            }
            else if (thisRound == battleRound.enemy)
            {
                playerbp.hp -= battleSinglehit(enemybp.atk, playerbp.def);
                if (playerbp.hp < 0)
                {
                    playerbp.hp = 0;
                }
                labels.transform.Find("hero_hp").GetComponent <UILabel>().text = playerbp.hp.ToString();
                thisRound = battleRound.player;
            }

            yield return(new WaitForSeconds(0.4f));
        }

        if (playerbp.hp <= 0)
        {
            Debug.Log("玩家死亡");
        }
        else if (enemybp.hp <= 0)
        {
            Debug.Log("怪物死亡");//玩家面板更新血量,钱币,经验
            Destroy(enemy.gameObject);
            GameObject.Find("battle0" + player.playerInfloor.ToString() + "(Clone)").GetComponent <myTweenAlpha>()._thisSprite.Remove(enemy.gameObject);
            GameObject.Find("UI Root").transform.Find("main").Find("labelPanel").Find("hp").GetComponent <UILabel>().text = playerbp.hp.ToString();
            player.empiric += enemybp.deadEmpiric;//更新后台数据
            player.HP       = playerbp.hp;
            GameObject.Find("UI Root").transform.Find("main").Find("labelPanel").Find("jy").GetComponent <UILabel>().text = player.empiric.ToString();
            player.coin += enemybp.deadCoin;//更新后台数据
            GameObject.Find("UI Root").transform.Find("main").Find("labelPanel").Find("coin").GetComponent <UILabel>().text = player.coin.ToString();

            //更新后台当前层缓存
            floor_01 f1       = GameObject.Find("battle0" + player.playerInfloor.ToString() + "(Clone)").GetComponent <floor_01>();
            int[]    enemypos = f1.transMaptoArray(enemy.transform.position);
            for (int i = 0; i <= f1.enemylist.Count - 1; i++)
            {
                if (f1.CompareArray(enemypos, f1.enemylist[i].zuobiao))
                {
                    f1.enemylist.RemoveAt(i);
                }
            }
            GameObject.Find("Main Camera").GetComponent <gameData>().floorDataList[player.playerInfloor - 1].enemylist = f1.enemylist;//将层数据同步到后台

            //弹出战斗奖励
            GameObject info = (GameObject)Instantiate(Resources.Load("Prefabs/UIPanel"));
            info.transform.parent     = GameObject.Find("UI Root").transform.Find("main").transform;
            info.transform.localScale = new Vector3(1f, 1f, 1f);

            //info.transform.FindChild("labelc_Coin").GetComponent<UILabel>().text = "";
            //info.transform.FindChild("labelc_em").GetComponent<UILabel>().text = "";
            //info.transform.FindChild("Label").GetComponent<UILabel>().text = "";
            //info.transform.FindChild("Label 1").GetComponent<UILabel>().text = "";
            //info.transform.FindChild("Label 2").GetComponent<UILabel>().text = "";
            //info.transform.FindChild("Label 3").GetComponent<UILabel>().text = "";

            info.transform.Find("labelc_Coin").GetComponent <UILabel>().text = enemybp.deadCoin.ToString();
            info.transform.Find("labelc_em").GetComponent <UILabel>().text   = enemybp.deadEmpiric.ToString();

            Destroy(info, 0.7f);
        }
        thisRound = battleRound.player;
        labels.SetActive(false);                                                                     //战斗结束关闭面板
        labels.transform.Find("enemysprite").GetComponent <UISprite>().spriteName = "";              //清空sprite
        Destroy(labels.transform.Find("enemysprite").gameObject.GetComponent <UISpriteAnimation>()); //删除动画组件

        //等待1秒后,再开启移动
        //yield return new WaitForSeconds(1f);
        //gameObject.GetComponent<controller>().isBattle = false;//开启移动标示

        StopCoroutine("fight");
    }