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); } } }
private void HandleCollision(IDynamic obj1, IStatic obj2) { Direction direction = Detect(obj1, obj2); if (direction == Direction.none) { return; } staticHandler.HandleCollision(obj1, obj2, direction); }
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; }
public StaticController(IStatic pages) { Pages = pages; }
public void AddStatic(IStatic _static) { statics.Add(_static); }
public void AddObject(IStatic gameObject) { StaticObjects.Add(gameObject); }
private void DestroyFromManager(IStatic gameObject) { StaticObjects.Remove(gameObject); gameObject.Destroy(); }