示例#1
0
文件: Room.cs 项目: MHDante/OrbitVR
        public void Update()
        {
            Player.CheckForPlayers(this);

            Camera.Update();
            long elapsed = 0;

            if (OrbIt.Game.Time != null)
            {
                elapsed = (long)Math.Round(OrbIt.Game.Time.ElapsedGameTime.TotalMilliseconds);
            }
            TotalElapsedMilliseconds += elapsed;


            //AffectAlgorithm #2 See Souce History in this file for AffectAlgorithm 1
            GridsystemAffect.clearBuckets();
            foreach (var n in MasterGroup.fullSet)
            {
                if (MasterGroup.childGroups["Wall Group"].fullSet.Contains(n))
                {
                    continue;
                }
                GridsystemAffect.insertToBuckets(n.body);
            }
            if (DebugFlags.drawAffectGrid)
            {
                GridsystemAffect.addGridSystemLines();
            }

            CollisionManager.Update();

            foreach (Node n in MasterGroup.fullSet.ToList())
            {
                if (n.active)
                {
                    n.Update();
                }
            }
            AfterIteration?.Invoke(this, null);

            Level.addLevelLines();

            UpdateTargetNodeGraphic();

            Scheduler.AffectSelf();

            if (_pendingRoomResize != null)
            {
                _pendingRoomResize();
                _pendingRoomResize = null;
            }
        }
示例#2
0
文件: Room.cs 项目: MHDante/OrbitVR
        public void Draw()
        {
            //spritebatch.Draw(game.textureDict[textures.whitepixel], new Vector2(300, 300), null, Color.Black, 0f, Vector2.Zero, 100f, SpriteEffects.None, 0);
            if (TargetNode != null)
            {
                UpdateTargetNodeGraphic();
                TargetNodeGraphic.Draw();
            }
            foreach (var n in MasterGroup.fullSet.ToList())
            {
                //Node n = (Node)o;
                n.Draw();
            }
            if (DebugFlags.drawRoomBorder)
            {
                Camera.DrawRect(Vector2R.Zero, new Vector2R(WorldWidth, WorldHeight), BorderColor);
            }
            if (DebugFlags.drawAffectGrid)
            {
                GridsystemAffect.DrawGrid(this, Color.LightBlue);
            }
            if (DebugFlags.drawCollisionGrid)
            {
                CollisionManager.Draw();
            }

            if (DrawLinks)
            {
                foreach (Link link in AllActiveLinks)
                {
                    link.GenericDraw();
                }
            }
            OrbIt.GlobalGameMode.Draw();
            GraphData.DrawGraph();
        }