/// <summary> /// Constructor with three parametres: /// Initilize position, current state of droping object /// </summary> /// <param name="states"> DropObjectStates object witch store all textures for droping object animation process </param> /// <param name="position"> Initial position of droping object </param> public DropObject(DropObjectStates states, Vector2 position, SpriteEffects currentSpriteEffect) { this.position = position; this.states = states; isVisible = false; currentState = 0; this.currentSpriteEffect = currentSpriteEffect; }
public void LoadContent(ContentManager Content) { playerActions[(int)ActionType.IDLE] = new Animation(Content.Load <Texture2D>(@"droid\idle"), playerPosition, 3, 100); playerActions[(int)ActionType.GO] = new Animation(Content.Load <Texture2D>(@"droid\go"), playerPosition, 3, 100); playerActions[(int)ActionType.FIGHT] = new Animation(Content.Load <Texture2D>(@"droid\attack"), playerPosition, 3, 100); playerActions[(int)ActionType.JUMP] = new Animation(Content.Load <Texture2D>(@"droid\fly"), playerPosition, 3, 100); playerActions[(int)ActionType.JUMP_FIGHT] = new Animation(Content.Load <Texture2D>(@"droid\jump_attack"), playerPosition, 3, 100); #if DROP // Load all possible states of droping object states = new DropObjectStates(GameConstants.droppingObjectStatesCount); states.LoadContent(Content); // Initilise set of droping objects swordSet = new DropSetOfObjects(); #endif }
/// <summary> /// Add new objects to list if distance from last shot is bigger then distanceForNewDrop /// </summary> /// <param name="states"> Stores sprites for drioping animation </param> /// <param name="position"> Store current position of sprite, witch droping object </param> /// <param name="distanceForNewDrop"> distance from last last droping object </param> public void Add(DropObjectStates states, Vector2 position, int distanceForNewDrop, SpriteEffects currentSpriteEffect) { // If list is null we need to add object in any case if (dropObjectList.Count == 0) { // Add new object and set it state to visible dropObjectList.Add(new DropObject(states, position, currentSpriteEffect)); dropObjectList.First().IsVisible = true; } else { // If list is not empty we check distanse from last drop if (Math.Abs(dropObjectList.Last().Position.X - position.X) > distanceForNewDrop) { // Add new object and set it state to visible dropObjectList.Add(new DropObject(states, position, currentSpriteEffect)); dropObjectList.Last().IsVisible = true; } } }