public void Update(int x, int y, int row) { if (movementBuffer.Count < 15) { movementBuffer.Add(x); movementBuffer.Add(y); } else { if (this.y < movementBuffer[1]) { this.row = 0; this.y = movementBuffer[1]; animateSprite.Update(); } if (this.x < movementBuffer[0]) { this.row = 3; this.x = movementBuffer[0]; animateSprite.Update(); } if (this.x > movementBuffer[0]) { this.row = 2; this.x = movementBuffer[0]; animateSprite.Update(); } if (this.y > movementBuffer[1]) { this.row = 1; this.y = movementBuffer[1]; animateSprite.Update(); } movementBuffer.RemoveAt(0); movementBuffer.RemoveAt(0); } }
public string Update(LevelMap levelMap) { KeyboardState keyboardState = Keyboard.GetState(); if (keys.Count > 0) { //check if object can be interacted with foreach (BoundingBox box in levelMap.items) { if (boundingBox.isClose(box)) { objectName = box.name; } if (boundingBox.collisionCheck(box) || boundingBox.borderCollision(levelMap)) { boundingBox.Position = oldPosition; if (keys[keys.Count - 1] == 'W') { y += 7; } if (keys[keys.Count - 1] == 'S') { y -= 7; } if (keys[keys.Count - 1] == 'A') { x += 8; } if (keys[keys.Count - 1] == 'D') { x -= 8; } } } } if (keyboardState.IsKeyDown(Keys.A) && oldState.IsKeyUp(Keys.A)) { keys.Add('A'); } if (keyboardState.IsKeyDown(Keys.W) && oldState.IsKeyUp(Keys.W)) { keys.Add('W'); } if (keyboardState.IsKeyDown(Keys.S) && oldState.IsKeyUp(Keys.S)) { keys.Add('S'); } if (keyboardState.IsKeyDown(Keys.D) && oldState.IsKeyUp(Keys.D)) { keys.Add('D'); } if (keyboardState.IsKeyUp(Keys.A)) { keys.Remove('A'); } if (keyboardState.IsKeyUp(Keys.W)) { keys.Remove('W'); } if (keyboardState.IsKeyUp(Keys.S)) { keys.Remove('S'); } if (keyboardState.IsKeyUp(Keys.D)) { keys.Remove('D'); } if (!locked) { if (keys.Count != 0) { if (keys[keys.Count - 1] == 'W' && keyboardState.IsKeyDown(Keys.W)) { y -= 6; row = 1; } if (keys[keys.Count - 1] == 'A' && keyboardState.IsKeyDown(Keys.A)) { x -= 7; row = 2; } if (keys[keys.Count - 1] == 'S' && keyboardState.IsKeyDown(Keys.S)) { y += 6; row = 0; } if (keys[keys.Count - 1] == 'D' && keyboardState.IsKeyDown(Keys.D)) { x += 7; row = 3; } animateSprite.Update(); followingSprite.Update(x, y, row); followingSprite.Update(x, y, row); objectName = ""; } } oldPosition = boundingBox.Position; boundingBox.Position = new Vector2(x, y); oldState = keyboardState; return(objectName); }