コード例 #1
0
        public listBoxForm(ParameterSet ps, Actor a, Manipulator m, MainForm ma)
        {
            InitializeComponent();
            int index = 0;

            selectedActor = a;
            parms = ps;
            man = m;
            main = ma;
            if (man != null)
                man.enableRayCast = false;

            if (selectedActor.Name.Contains("Trigger"))
                triggerFlag = true;

            string agents = "";
            if (selectedActor.Parm.HasParm("Agents"))
                agents = selectedActor.Parm.GetString("Agents");

            foreach (KeyValuePair<string, string> s in ps)
            {
                if (index++ != 0)
                {
                    this.listBox.Items.Add(s.Key);
                    foreach (string str in agents.Split(','))
                    {
                        if (str == s.Key)
                            listBox.SelectedIndices.Add(index - 2);
                    }
                }
            }
        }
コード例 #2
0
        public void Stop()
        {
            if (playState != PlayState.Stopped)
            {
                // stop game
                playState = PlayState.Stopped;
                PhysicsObject.ForceStaticMesh = true;
                PhysicsObject.DisableMass = true;

                // reload world
                Stage.EditorReloadStage();

                activeManipulator = new Manipulator();
                activeManipulator.Initialize(content, GraphicsDevice);

                //stop the theme song cause that is annoying
                AudioQB aQB = Stage.ActiveStage.GetQB<AudioQB>();
                aQB.PauseTheme();

                // set to freecam
                CameraQB cameraQB = Stage.ActiveStage.GetQB<CameraQB>();
                cameraQB.StartFreeCam();
            }
        }
コード例 #3
0
 public void StartRotate()
 {
     if (playState == PlayState.Stopped)
     {
         Actor selectedActor = null;
         if (activeManipulator != null)
             selectedActor = activeManipulator.selectedActor;
         activeManipulator = new RotateManipulator();
         ((RotateManipulator)activeManipulator).modelDrawer = new BEPUphysicsDrawer.Models.InstancedModelDrawer(GraphicsDevice, Services);
         activeManipulator.Initialize(content, GraphicsDevice);
         activeManipulator.selectedActor = selectedActor;
     }
 }
コード例 #4
0
        public void Start()
        {
            if (playState != PlayState.Playing)
            {
                activeManipulator = null;

                if (playState == PlayState.Stopped)
                {
                    mf.PropertiesPanel.Controls.Clear();
                    PhysicsObject.DisableMass = false;
                    PhysicsObject.ForceStaticMesh = false;

                    // save then load stage
                    //SaveStage(worldFile); //uncomment this line if we want to save to file everytime we start a level in the editor
                    reloadStage();
                    Stage.EditorLoadStage(parms);
                }
                else
                {
                    CameraQB cameraQB = Stage.ActiveStage.GetQB<CameraQB>();
                    cameraQB.EndFreeCam();
                }

                // start game
                playState = PlayState.Playing;

            }
        }
コード例 #5
0
        public void Pause()
        {
            if (playState == PlayState.Playing)
            {
                // pause game
                playState = PlayState.Paused;

                activeManipulator = new Manipulator();
                activeManipulator.Initialize(content, GraphicsDevice);

                // push the freecam
                CameraQB cameraQB = Stage.ActiveStage.GetQB<CameraQB>();
                cameraQB.StartFreeCam();
            }
        }
コード例 #6
0
        public void LoadStage(string filename)
        {
            Stop();
            activeManipulator = null;
            worldFile = filename;
            parms = ParameterSet.FromFile(worldFile);
            GameLib.Stage.EditorLoadStage(parms);
            //stop the theme song cause that is annoying
            AudioQB aQB = Stage.ActiveStage.GetQB<AudioQB>();
            aQB.PauseTheme();

            activeManipulator = new Manipulator();
            activeManipulator.Initialize(content, GraphicsDevice);
            Stage.ActiveStage.GetQB<CameraQB>().StartFreeCam();
        }