Example #1
0
    void FrameUpdate()
    {
        // 这种情况是飞行道具打不中人,飞出一段距离就消失
        if (aimId == -1)
        {
            if (VInt3.Distance(initPosition, mover.position) >= distance)
            {
                mover.StopMove();
                Destroy(gameObject);
            }
        }
        // 这种情况是可以打中人,会一直跟随目标对象,直到打中为止
        else
        {
            if (aimPlayer == null)
            {
                aimPlayer = Global.entity [aimId].GetComponent <Player> ();
            }
            // 方向跟随目标
            transform.LookAt((Vector3)aimPlayer.mover.position + new Vector3(0, (float)offsetY, 0));
            // 判断是否打中目标
            if (!isHit)
            {
                if (VInt3.Distance(mover.position, aimPlayer.mover.position) < (VInt)2.0f)
                {
                    isHit = true;
                    aimPlayer.Damage(aimId, 200);
                    mover.StopMove();
                    Destroy(gameObject);
                }
            }
        }

        mover.StartMove((VInt3)transform.forward, speed);
    }
Example #2
0
    void FrameUpdate()
    {
        // 取当前帧的指令,并进行相应的计算
        JsonObject frameOrder = LogicFrame.getFrameOrder(uid);

        if (frameOrder != null)
        {
            int type = Convert.ToInt32(frameOrder ["type"]);
            if (type == Global.Frame_Move)                // 移动
            {
                int vx = Convert.ToInt32(frameOrder ["vx"]);
                int vy = Convert.ToInt32(frameOrder ["vy"]);
                int vz = Convert.ToInt32(frameOrder ["vz"]);
                mover.StartMove(new VInt3(vx, vy, vz), speedReal);
            }
            else if (type == Global.Frame_StopMove)                 // 停止移动
            {
                mover.StopMove();
            }
            else if (type == Global.Frame_Attack)                 // 攻击
            {
                OnAttack();
            }
            else if (type == Global.Frame_Skill)                 // 技能
            {
                int skillCode = Convert.ToInt32(frameOrder ["code"]);
                OnSkill(skillCode);
            }
        }

        foreach (int uid in Global.entity.Keys)
        {
            Player player = Global.entity [uid].GetComponent <Player> ();
            player.blood.textInfo.text = player.mover.position.ToStringF3();
        }
        string text = "";

        text    += LogicFrame.frameOrderList.Count + ", " + LogicFrame.frame + ", " + LogicFrame.frameIntervalTimeReal;
        log.text = text;
    }