コード例 #1
0
 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);
     }
 }
コード例 #2
0
ファイル: MainSprite.cs プロジェクト: EmberLynn/firstrate
        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);
        }