Example #1
0
 public static void displace(Sprite.Entity entity, nfloat unit, int i, int j)
 {
     flag           = false;
     addmove        = false;
     time           = new System.Timers.Timer();
     time2          = new System.Timers.Timer();
     time.Interval  = 500 / (entity.Speed);
     time2.Interval = 500 / (entity.Speed * 150);
     time.Elapsed  += make_true;
     time2.Elapsed += movetime;
     time.Enabled   = true;
     time2.Enabled  = true;
     while (!flag)
     {
         if (addmove)
         {
             Debug.WriteLine("{0} : {1}", entity.spriteNode.Position, new CGPoint(entity.spriteNode.Position.X + i * (unit / 10), entity.spriteNode.Position.Y + j * (unit / 10)));
             entity.spriteNode.Position = new CGPoint(entity.spriteNode.Position.X + i * (unit / 150), entity.spriteNode.Position.Y + j * (unit / 150));
             addmove        = false;
             time.AutoReset = true;
         }
     }
     flag           = true;
     addmove        = false;
     time.Enabled   = false;
     time.AutoReset = true;
     time2.Enabled  = false;
 }
Example #2
0
        // Function to move the player character.
        public bool move(ref Sprite.Entity player1, ref Sprite[,,] sprites, NSEvent theEvent, ref CGPoint change, nfloat Height, nfloat Width)
        {
            // find direction
            string Direction = direction(theEvent);

            // unit of travel
            nfloat unit = (nfloat)(3.75 * Height / 150);

            // Acceleration
            if (player1.Type == "entity")
            {
                Debug.WriteLine("Prev.Speed: {0}", player1.Speed);
                Debug.WriteLine("Max Speed: {0}", player1.Max_Speed);
                Debug.WriteLine("{0},{1},{2}", player1.last_direction, Direction, player1.last_direction == Direction);
                if (player1.last_direction == Direction && player1.Speed <= player1.Max_Speed)
                {
                    player1.Speed         += 0.1 * (double)(player1.Acceleration);
                    player1.last_direction = Direction;
                }
                else if (player1.last_direction != Direction)
                {
                    player1.Speed = player1.Base_Speed; player1.last_direction = Direction;
                }
            }

            Debug.WriteLine("Speed: {0}", player1.Speed);
            // Move around player1 and sets previous position to null
            switch (Direction)
            {
            case "right":
                movement(ref sprites, ref player1, player1.spriter, ref change, unit, 1, 0, Height, Width);
                break;

            case "left":
                movement(ref sprites, ref player1, player1.spritel, ref change, unit, -1, 0, Height, Width);
                break;

            case "up":
                movement(ref sprites, ref player1, player1.spriteb, ref change, unit, 0, 1, Height, Width);
                break;

            case "down":
                movement(ref sprites, ref player1, player1.spritef, ref change, unit, 0, -1, Height, Width);
                break;

            default:
                break;
            }
            if (change.X == 0 & change.Y == 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Example #3
0
        // Function that detects the key pressed

        /*
         * public void Form1_KeyPress(object sender, KeyPressEventArgs e)
         * {
         *  if (e.KeyChar == 'w' || e.KeyChar == 'W')
         *  {
         *      Debug.WriteLine("detected");
         *      //do something
         *  }
         * }
         */
        // Function that performs the movement
        public void movement(ref Sprite[,,] sprites, ref Sprite.Entity player1, string sprite, ref CGPoint change, nfloat unit, int i, int j, nfloat Height, nfloat Width)
        {
            // Change sprite
            player1.spriteNode.Texture = SKTexture.FromImageNamed(sprite);
            int x = (int)((player1.actualX + i * 4) / 15);
            int y = (int)((player1.actualY + j * 4) / 15);

            Debug.WriteLine("Current pos: {0},{1}", player1.actualX, player1.actualY);
            Debug.WriteLine("Checker pos: {0},{1}", player1.actualX + 4 * i, player1.actualY + 4 * j);
            Debug.WriteLine("Destination: {0},{1}", player1.actualX + i * (3.75), player1.actualY + j * (3.75));
            Debug.WriteLine("Change: {0},{1}", x, y);
            sprites[player1.xPos, player1.yPos, player1.zPos] = null;
            // Checks if move is out of bounds
            if ((0 > player1.actualX + 4 * i | player1.actualX + 4 * i >= 15 * sprites.GetLength(0)) | (0 > player1.actualY + 4 * j | player1.actualY + 4 * j >= 15 * sprites.GetLength(1)))
            {
                Debug.WriteLine("Successfully prevented player from moving out of area");
            }

            // Moves player in the desired direction on the current floor
            else if ((sprites[x, y, player1.zPos] == null || !sprites[x, y, player1.zPos].Solid) & (player1.zPos == 0 || sprites[x, y, player1.zPos - 1] != null))
            {
                Debug.WriteLine("Moved in desired direction");
                player1.actualX += 3.75 * i; player1.xPos = (int)(player1.actualX / 15); change.X = i * unit;
                player1.actualY += 3.75 * j; player1.yPos = (int)(player1.actualY / 15); change.Y = j * unit;
            }

            // Moves a player in the desired direction and falls
            else if (player1.zPos > 0 && sprites[player1.xPos + i, player1.yPos + j, player1.zPos - 1] == null)
            {
                Debug.WriteLine("Moved in desired direction and fell");
                player1.actualX += 3.75 * i; player1.xPos = (int)(player1.actualX / 15); change.X = i * unit;
                player1.actualY += 3.75 * j; player1.yPos = (int)(player1.actualY / 15); change.Y = j * unit;
                while (player1.zPos > 0 && sprites[player1.xPos, player1.yPos, player1.zPos - 1] == null)
                {
                    player1.zPos--; player1.spriteNode.Position = new CGPoint(player1.spriteNode.Position.X, player1.spriteNode.Position.Y - (4 * Height / 150));
                }
            }

            // Moves player 1 up a floor whilst moving in the desired direction
            else if (sprites[x, y, player1.zPos].GetClimbable() && sprites[x, y, player1.zPos].GetHeight() - player1.zPos == 1)
            {
                Debug.WriteLine("Moved in desired direction and climbed");
                player1.spriteNode.Position = new CGPoint(player1.spriteNode.Position.X, player1.spriteNode.Position.Y + (4 * Height / 150));;
                player1.actualX            += 3.75 * 2 * i; player1.xPos = (int)(player1.actualX / 15); change.X = 2 * i * unit;
                player1.actualY            += 3.75 * 2 * j; player1.yPos = (int)(player1.actualY / 15); change.Y = 2 * j * unit;
                player1.zPos++;
            }
            else
            {
                Debug.WriteLine("Error");
            }
            player1.spriteNode.ZPosition = player1.defaultZ + 4 * (9 - (int)((player1.actualY) / 15)) + 6 * (player1.zPos) - 1;
            Debug.WriteLine("Current height: {0}", player1.zPos);
        }
Example #4
0
 public bool GetFlag(Sprite.Entity entity)
 {
     if (!entity.spriteNode.HasActions)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
Example #5
0
 public bool GetNear(Sprite.Entity entity)
 {
     if (Math.Sqrt(Math.Pow(player1.spriteNode.Position.X - player1.destination.X, 2)) <= 2 && (player1.last_direction == "left" || player1.last_direction == "right"))
     {
         return(true);
     }
     else if (Math.Sqrt(Math.Pow(player1.spriteNode.Position.Y - player1.destination.Y, 2)) <= 2 && (player1.last_direction == "up" || player1.last_direction == "down"))
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
Example #6
0
 protected GameScene(IntPtr handle) : base(handle)
 {
     fetch    = new setup1();
     data     = new fetch_data();
     move     = new movements();
     player1  = new Sprite.Entity(fetch.p1());
     sprites  = new Sprite[10, 10, 3];
     Nextmove = false;
     //accelx = 0;
     //accely = 0;
     Height             = Frame.Size.Height;
     Width              = Frame.Size.Width;
     bg                 = SKSpriteNode.FromImageNamed("background/background");
     player1.spriteNode = SKSpriteNode.FromImageNamed(player1.spritef);
     //p1 = SKSpriteNode.FromImageNamed("sprites/player/p1front");
 }