示例#1
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="pType"></param>
 public Fixture(FixtureType pType)
 {
     mManager         = new DmxFramework.Scene.SceneManager();
     mManager.Fixture = this;
     mName            = "";
     mType            = pType;
     mChannels        = new ArrayList();
 }
示例#2
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="pType"></param>
 public Fixture(Fixture pParent, FixtureType pType)
 {
     mParent          = pParent;
     mManager         = new DmxFramework.Scene.SceneManager();
     mManager.Fixture = this;
     mName            = "";
     mType            = pType;
     mChannels        = new List <DmxFramework.Channels.Channel>();
 }
示例#3
0
        /// <summary>
        /// Pokud neni volny pohyb, tak opravi vyskovou pozici hrace tak, aby hrac stal na terenu
        /// </summary>
        /// <param name="position">Puvodni pozice hrace</param>
        /// <param name="newPosition">Pozice hrace, na kterou chce hrac jit, tato promena bude prepsana korektni hodnotou</param>
        private static void RepairPositionInNonFreeLook(Vector3 position, ref Vector3 newPosition)
        {
            if (!freeLook)
            {
                Scene.SceneManager sm = GraphicCore.GetCurrentSceneManager();
                List <SceneManager.SceneObject> sos = sm.GetAllObjects();

                Vector3 dir = Vector3.Normalize(newPosition - position) * Speed * time;

                bool blocked = false;
                foreach (SceneManager.SceneObject so in sos)
                {
                    if (so.name.StartsWith("Hrac"))
                    {
                        continue;
                    }

                    if (so.generalObject.ComputeBoxCollission(newPosition) ||
                        so.generalObject.ComputeBoxCollission(newPosition + dir * 0.02f) ||
                        so.generalObject.ComputeBoxCollission(newPosition + dir * 0.01f) ||
                        so.generalObject.ComputeBoxCollission(newPosition + dir * 0.005f) ||
                        so.generalObject.ComputeBoxCollission(newPosition + dir * 0.0025f) ||
                        so.generalObject.ComputeBoxCollission(newPosition + dir * 0.00125f))
                    {
                        blocked = true;
                    }
                }

                if (terain.IsPositionOnTereain(newPosition) && !blocked /*!terain.IsPositionOnTerainBlocked(newPosition)*/)
                {
                    newPosition = terain.GetPositionOnTerain(newPosition);
                }
                else
                {
                    newPosition = terain.GetPositionOnTerain(position);
                }

                newPosition.Y += HeightOfEye.Y;
            }
        }