Пример #1
0
 public void Update(GameTime gameTime)
 {
     dynamicLoader.Load(game.Camera.RightBound + LoadMargin); // We set the load range to 100.
     if (Mario.Position.X < game.Camera.LeftBound)
     {
         Mario.Position = new Vector2(game.Camera.LeftBound, Mario.Position.Y);
     }
     for (int i = (StaticObjects.Count - 1); i >= 0 && i < StaticObjects.Count; i--)
     {
         IStatic obj = StaticObjects[i];
         BoundaryCheck(obj);
         obj.Update(gameTime);
         if (obj.ObjState == ObjectState.Destroy)
         {
             DestroyFromManager(obj);
         }
         if (obj.ObjState == ObjectState.NonCollidable)
         {
             MoveToNonCollidable(obj);
         }
     }
     for (int i = (DynamicObjects.Count - 1); i >= 0 && i < DynamicObjects.Count; i--)
     {
         IDynamic obj = DynamicObjects[i];
         BoundaryCheck(obj);
         obj.Update(gameTime);
         if (obj.ObjState == ObjectState.Destroy)
         {
             DestroyFromManager(obj);
         }
         if (obj.ObjState == ObjectState.NonCollidable)
         {
             MoveToNonCollidable(obj);
         }
     }
     for (int i = (NonCollidableObjects.Count - 1); i >= 0 && i < NonCollidableObjects.Count; i--)
     {
         BoundaryCheck(NonCollidableObjects[i]);
         IObject obj;
         if (NonCollidableObjects[i] is IStatic)
         {
             obj = (IStatic)NonCollidableObjects[i];
             ((IStatic)obj).Update(gameTime);
         }
         else
         {
             obj = (IDynamic)NonCollidableObjects[i];
             ((IDynamic)obj).Update(gameTime);
         }
         if (obj.ObjState == ObjectState.Destroy)
         {
             DestroyFromNonCollidable(obj);
         }
         if (obj.ObjState == ObjectState.Normal)
         {
             MoveToCollidable(obj);
         }
     }
 }
Пример #2
0
        private void HandleCollision(IDynamic obj1, IStatic obj2)
        {
            Direction direction = Detect(obj1, obj2);

            if (direction == Direction.none)
            {
                return;
            }
            staticHandler.HandleCollision(obj1, obj2, direction);
        }
Пример #3
0
        public void HandleCollision(IDynamic obj1, IStatic obj2)
        {
            Direction direction = Detect(obj1, obj2);

            staticHandler.HandleCollision(obj1, obj2, direction);
        }
 public ThreadStaticProxy(IStatic objectInstance) : base(objectInstance)
 {
     this.objectInstance = objectInstance;
 }
Пример #5
0
 public StaticController(IStatic pages)
 {
     Pages = pages;
 }
Пример #6
0
 public void AddStatic(IStatic _static)
 {
     statics.Add(_static);
 }
Пример #7
0
 public void AddObject(IStatic gameObject)
 {
     StaticObjects.Add(gameObject);
 }
Пример #8
0
 private void DestroyFromManager(IStatic gameObject)
 {
     StaticObjects.Remove(gameObject);
     gameObject.Destroy();
 }