Example #1
0
 public InputPasswordForm(SwitcherPassword spassword, GameProcess gameprocess)
 {
     InitializeComponent();
     this.spassword   = spassword;
     this.gameprocess = gameprocess;
 }
Example #2
0
        private void UpdateObjects(float dt)
        {
            left  = true;
            right = true;

            for (int i = 0; i < level.GameObjects.Count; i++)
            {
                if (level.GameObjects[i].Name == "Hero")
                {
                    Character c = level.GameObjects[i] as Character;

                    if (c.ControlledBot != null ? !c.ControlledBot.Controled : true)
                    {
                        c.Anim.ChangeFrame(Keyboard.IsKeyDown(Keys.D) ? Direction.Right : Keyboard.IsKeyDown(Keys.A) ? Direction.Left : /*Keyboard.IsKeyDown(Keys.S) && */ !c.PhysBody.Gravity ? Direction.Down : Direction.Idle, c.PhysBody.MaxSpeed, c.PhysBody.Gravity);
                    }

                    c.PhysBody.OnGround = false;
                    c.PhysBody.Gravity  = true;

                    for (int j = 0; j < level.GameObjects.Count; j++)
                    {
                        if (c.Position.IntersectsWith(level.GameObjects[j].Position) && level.GameObjects[j].Name != "Hero")
                        {
                            if (level.GameObjects[j].Name == "Platform" || (level.GameObjects[j].Name == "Door" && ((level.GameObjects[j] is Door) ? !(level.GameObjects[j] as Door).Opened : false)))
                            {
                                if (((level.GameObjects[j].Position.Right + 1 > c.Position.Location.X) && (level.GameObjects[j].Position.Right - 8 /* - 5 */ <= c.Position.Location.X)) && (((level.GameObjects[j].Position.Location.Y < c.Position.Location.Y + c.Position.Height - 4) && (level.GameObjects[j].Position.Location.Y + level.GameObjects[j].Position.Height > c.Position.Location.Y + c.Position.Height - 4)) || ((level.GameObjects[j].Position.Location.Y < c.Position.Location.Y + 4) && (level.GameObjects[j].Position.Location.Y + level.GameObjects[j].Position.Height > c.Position.Location.Y + 4)) || ((level.GameObjects[j].Position.Location.Y > c.Position.Location.Y) && (level.GameObjects[j].Position.Location.Y + level.GameObjects[j].Position.Height <= c.Position.Location.Y + c.Position.Height - 4))))
                                {
                                    c.PhysBody.Velocity = new PointF(0, c.PhysBody.Velocity.Y);
                                    c.Position          = new RectangleF(new PointF(level.GameObjects[j].Position.Right, c.Position.Y), c.Position.Size);
                                    left = false;
                                    continue;
                                }

                                if (((level.GameObjects[j].Position.Location.X - 2 < c.Position.Right + 1) && (level.GameObjects[j].Position.Location.X + 8 >= c.Position.Right)) && (((level.GameObjects[j].Position.Location.Y < c.Position.Location.Y + c.Position.Height - 4) && (level.GameObjects[j].Position.Location.Y + level.GameObjects[j].Position.Height > c.Position.Location.Y + c.Position.Height - 4)) || ((level.GameObjects[j].Position.Location.Y < c.Position.Location.Y + 4) && (level.GameObjects[j].Position.Location.Y + level.GameObjects[j].Position.Height > c.Position.Location.Y + 4)) || ((level.GameObjects[j].Position.Location.Y >= c.Position.Location.Y + 4) && (level.GameObjects[j].Position.Location.Y + level.GameObjects[j].Position.Height <= c.Position.Location.Y + c.Position.Height - 4))))
                                {
                                    c.PhysBody.Velocity = new PointF(0, c.PhysBody.Velocity.Y);
                                    c.Position          = new RectangleF(new PointF(level.GameObjects[j].Position.Left - c.Position.Width - 1, c.Position.Y), c.Position.Size);
                                    right = false;
                                    continue;
                                }

                                if ((c.Position.Bottom > level.GameObjects[j].Position.Top) && ((((c.Position.X > level.GameObjects[j].Position.X + 3) && (c.Position.X < level.GameObjects[j].Position.Right - 3)) || ((c.Position.Right > level.GameObjects[j].Position.X + 3) && (c.Position.Right < level.GameObjects[j].Position.Right - 3))) || ((c.Position.X >= level.GameObjects[j].Position.X + 3) && (c.Position.Right <= level.GameObjects[j].Position.Right - 3)) || ((c.Position.X <= level.GameObjects[j].Position.X + 3) && (c.Position.Right >= level.GameObjects[j].Position.Right - 3))))
                                {
                                    c.PhysBody.OnGroundCollision(level.GameObjects[j].Position.Top - c.Position.Height);
                                    c.PhysBody.OnGround = true;
                                }

                                if ((c.Position.Bottom >= level.GameObjects[j].Position.Bottom))
                                {
                                    c.Position          = new RectangleF(new PointF(c.Position.X, level.GameObjects[j].Position.Bottom), c.Position.Size);
                                    c.PhysBody.Velocity = new PointF(c.PhysBody.Velocity.X, 4);
                                }

                                continue;
                            }

                            if (level.GameObjects[j].Name == "DamageObject")
                            {
                                DamageObject dob = level.GameObjects[j] as DamageObject;

                                if (dob.Cripple)
                                {
                                    profile.Hero.CurrentHealth -= (dob.Damage - (int)Math.Round(dob.Damage * profile.Hero.ResistanceToDamage));
                                }

                                if (dob.Destructible)
                                {
                                    deletegameobject.Add(level.GameObjects[j]);
                                }

                                if ((c.Position.Top < level.GameObjects[j].Position.Top))
                                {
                                    if (dob.Cripple)
                                    {
                                        c.PhysBody.Jump(110f);
                                    }
                                    c.PhysBody.OnGroundCollision(level.GameObjects[j].Position.Top - c.Position.Height);
                                    c.PhysBody.OnGround = true;
                                    continue;
                                }

                                if ((c.Position.Bottom > level.GameObjects[j].Position.Bottom))
                                {
                                    c.PhysBody.Velocity = new PointF(c.PhysBody.Velocity.X, 4);
                                    continue;
                                }

                                if (level.GameObjects[j].Position.Right > c.Position.Left)//(((level.GameObjects[j].Position.Location.X + level.GameObjects[j].Position.Width >= c.Position.Location.X) && (level.GameObjects[j].Position.Location.X + level.GameObjects[j].Position.Width - 5 <= c.Position.Location.X)) && (((level.GameObjects[j].Position.Location.Y < c.Position.Location.Y + c.Position.Height) && (level.GameObjects[j].Position.Location.Y + level.GameObjects[j].Position.Height > c.Position.Location.Y + c.Position.Height)) || ((level.GameObjects[j].Position.Location.Y < c.Position.Location.Y) && (level.GameObjects[j].Position.Location.Y + level.GameObjects[j].Position.Height > c.Position.Location.Y)) || ((level.GameObjects[j].Position.Location.Y >= c.Position.Location.Y) && (level.GameObjects[j].Position.Location.Y + level.GameObjects[j].Position.Height <= c.Position.Location.Y + c.Position.Height))))
                                {
                                    c.Position = new RectangleF(new PointF(level.GameObjects[j].Position.Right + 40, c.Position.Y), c.Position.Size);
                                    continue;
                                }

                                if (level.GameObjects[j].Position.Right < c.Position.Left)//(((level.GameObjects[j].Position.Location.X <= c.Position.Location.X + c.Position.Width) && (level.GameObjects[j].Position.Location.X + 5 >= c.Position.Location.X + c.Position.Width)) && (((level.GameObjects[j].Position.Location.Y < c.Position.Location.Y + c.Position.Height) && (level.GameObjects[j].Position.Location.Y + level.GameObjects[j].Position.Height > c.Position.Location.Y + c.Position.Height)) || ((level.GameObjects[j].Position.Location.Y < c.Position.Location.Y) && (level.GameObjects[j].Position.Location.Y + level.GameObjects[j].Position.Height > c.Position.Location.Y)) || ((level.GameObjects[j].Position.Location.Y >= c.Position.Location.Y) && (level.GameObjects[j].Position.Location.Y + level.GameObjects[j].Position.Height <= c.Position.Location.Y + c.Position.Height))))
                                {
                                    c.Position = new RectangleF(new PointF(level.GameObjects[j].Position.Left - c.Position.Width - 40, c.Position.Y), c.Position.Size);
                                    continue;
                                }
                            }

                            if (level.GameObjects[j].Name == "Bot")
                            {
                                Bot b = level.GameObjects[j] as Bot;

                                profile.Hero.CurrentHealth -= (b.Damage - (int)Math.Round(b.Damage * profile.Hero.ResistanceToDamage));

                                if ((c.Position.Top < level.GameObjects[j].Position.Top))
                                {
                                    c.PhysBody.Jump(90f);
                                    c.PhysBody.OnGroundCollision(level.GameObjects[j].Position.Top - c.Position.Height);
                                    c.PhysBody.OnGround = true;
                                    continue;
                                }

                                if ((c.Position.Bottom > level.GameObjects[j].Position.Bottom))
                                {
                                    c.PhysBody.Jump(90f);
                                    continue;
                                }

                                if (level.GameObjects[j].Position.Right > c.Position.Left)//(((level.GameObjects[j].Position.Location.X + level.GameObjects[j].Position.Width >= c.Position.Location.X) && (level.GameObjects[j].Position.Location.X + level.GameObjects[j].Position.Width - 5 <= c.Position.Location.X)) && (((level.GameObjects[j].Position.Location.Y < c.Position.Location.Y + c.Position.Height) && (level.GameObjects[j].Position.Location.Y + level.GameObjects[j].Position.Height > c.Position.Location.Y + c.Position.Height)) || ((level.GameObjects[j].Position.Location.Y < c.Position.Location.Y) && (level.GameObjects[j].Position.Location.Y + level.GameObjects[j].Position.Height > c.Position.Location.Y)) || ((level.GameObjects[j].Position.Location.Y >= c.Position.Location.Y) && (level.GameObjects[j].Position.Location.Y + level.GameObjects[j].Position.Height <= c.Position.Location.Y + c.Position.Height))))
                                {
                                    c.PhysBody.Jump(90f);
                                    continue;
                                }

                                if (level.GameObjects[j].Position.Right < c.Position.Left)//(((level.GameObjects[j].Position.Location.X <= c.Position.Location.X + c.Position.Width) && (level.GameObjects[j].Position.Location.X + 5 >= c.Position.Location.X + c.Position.Width)) && (((level.GameObjects[j].Position.Location.Y < c.Position.Location.Y + c.Position.Height) && (level.GameObjects[j].Position.Location.Y + level.GameObjects[j].Position.Height > c.Position.Location.Y + c.Position.Height)) || ((level.GameObjects[j].Position.Location.Y < c.Position.Location.Y) && (level.GameObjects[j].Position.Location.Y + level.GameObjects[j].Position.Height > c.Position.Location.Y)) || ((level.GameObjects[j].Position.Location.Y >= c.Position.Location.Y) && (level.GameObjects[j].Position.Location.Y + level.GameObjects[j].Position.Height <= c.Position.Location.Y + c.Position.Height))))
                                {
                                    c.PhysBody.Jump(90f);
                                    continue;
                                }
                            }

                            if (level.GameObjects[j].Name == "CheckPoint")
                            {
                                PointCheck pc = level.GameObjects[j] as PointCheck;
                                if (!pc.CheckSave)
                                {
                                    pc.SavePoint(profile, c, level);
                                }


                                continue;
                            }

                            if (level.GameObjects[j].Name == "ExitDoor")
                            {
                                pause = true;
                                Thread.Sleep(1000);
                                this.Dispose();
                                this.Close();
                                gamemenu.LevelComplete(c);
                                continue;
                            }

                            if (level.GameObjects[j].Name == "Ladder")
                            {
                                c.PhysBody.Gravity = false;


                                continue;
                            }

                            if (level.GameObjects[j].Name == "Switcher" && (UpKey == Keys.E))
                            {
                                Switcher s = level.GameObjects[j] as Switcher;
                                s.Activated = !s.Activated;
                                continue;
                            }

                            if (level.GameObjects[j] is Item)
                            {
                                Item item = level.GameObjects[j] as Item;
                                item.AddToCharacter(c, deletegameobject);

                                continue;
                            }

                            if (level.GameObjects[j].Name == "Chest" && (UpKey == Keys.E))
                            {
                                Chest chest = level.GameObjects[j] as Chest;
                                drawingobjects.AddRange(chest.Items);
                                chest.Open(level.GameObjects);


                                continue;
                            }

                            if (level.GameObjects[j].Name == "SwitcherPassword" && (UpKey == Keys.E))
                            {
                                SwitcherPassword switcherpassword = level.GameObjects[j] as SwitcherPassword;
                                if (!switcherpassword.Activated)
                                {
                                    pause = true;
                                }
                                UpKey = 0;
                                switcherpassword.TryOn(this);


                                continue;
                            }

                            if (level.GameObjects[j].Name == "Trigger")
                            {
                                Trigger t = level.GameObjects[j] as Trigger;
                                if (!t.Activated)
                                {
                                    t.Activated = true;
                                }


                                continue;
                            }

                            if (level.GameObjects[j].Name == "Shop" && (UpKey == Keys.E))
                            {
                                UpKey = 0;
                                Shop shop = level.GameObjects[j] as Shop;

                                //pause = true;

                                shop.ToShop(c, this);
                                lastupdate = DateTime.MinValue;

                                continue;
                            }


                            if (level.GameObjects[j].Name == "Teleport" && (UpKey == Keys.E))
                            {
                                Teleport t = level.GameObjects[j] as Teleport;
                                UpKey = 0;

                                if (t.Teleport2 != null)
                                {
                                    t.ToTeleport2(c);
                                }

                                continue;
                            }
                        }
                    }

                    if (!c.PhysBody.OnGround)
                    {
                        c.PhysBody.UpdatePositionY(dt);
                    }
                }

                if (level.GameObjects[i].Name == "Bot")
                {
                    Bot c = level.GameObjects[i] as Bot;

                    if (!c.Controled)
                    {
                        c.Anim.ChangeFrame(c.Right ? Direction.Right : Direction.Left, c.PhysBody.MaxSpeed, c.PhysBody.Gravity);
                    }
                    else
                    {
                        c.Anim.ChangeFrame(Keyboard.IsKeyDown(Keys.D) ? Direction.Right : Keyboard.IsKeyDown(Keys.A) ? Direction.Left : /*Keyboard.IsKeyDown(Keys.S) && */ !c.PhysBody.Gravity ? Direction.Down : Direction.Idle, c.PhysBody.MaxSpeed, c.PhysBody.Gravity);
                    }

                    if (c.Controled)
                    {
                        if (Keyboard.IsKeyDown(Keys.W) && CheckGroung(c) /*&& profile.SaveGame.Hero.PhysBody.OnGround*/)
                        {
                            profile.Hero.ControlledBot.PhysBody.Jump();
                            profile.Hero.ControlledBot.PhysBody.OnGround = false;
                        }

                        if (Keyboard.IsKeyDown(Keys.A) && left)
                        {
                            profile.Hero.ControlledBot.PhysBody.Left();
                            right = true;
                        }

                        if (Keyboard.IsKeyDown(Keys.D) && right)
                        {
                            profile.Hero.ControlledBot.PhysBody.Right();
                            left = true;
                        }
                    }
                    else
                    {
                        if (c.Right)
                        {
                            c.PhysBody.Right();
                        }
                        else
                        {
                            c.PhysBody.Left();
                        }
                    }

                    c.PhysBody.UpdatePositionX(dt);

                    c.PhysBody.OnGround = false;
                    c.PhysBody.Gravity  = true;

                    for (int j = 0; j < level.GameObjects.Count; j++)
                    {
                        if (c.Position.IntersectsWith(level.GameObjects[j].Position) && level.GameObjects[j] != level.GameObjects[i])
                        {
                            if (level.GameObjects[j].Name == "Platform" || (level.GameObjects[j].Name == "Door" && ((level.GameObjects[j] is Door) ? !(level.GameObjects[j] as Door).Opened : false)))
                            {
                                if (((level.GameObjects[j].Position.Right + 1 /* <--- clear*/ > c.Position.Location.X) && (level.GameObjects[j].Position.Right - 8 /* - 5 */ <= c.Position.Location.X)) && (((level.GameObjects[j].Position.Location.Y < c.Position.Location.Y + c.Position.Height - 4) && (level.GameObjects[j].Position.Location.Y + level.GameObjects[j].Position.Height > c.Position.Location.Y + c.Position.Height - 4)) || ((level.GameObjects[j].Position.Location.Y < c.Position.Location.Y + 4) && (level.GameObjects[j].Position.Location.Y + level.GameObjects[j].Position.Height > c.Position.Location.Y + 4)) || ((level.GameObjects[j].Position.Location.Y > c.Position.Location.Y) && (level.GameObjects[j].Position.Location.Y + level.GameObjects[j].Position.Height <= c.Position.Location.Y + c.Position.Height - 4))))
                                {
                                    c.Position = new RectangleF(new PointF(level.GameObjects[j].Position.Right, c.Position.Y), c.Position.Size);
                                    c.Right    = true;
                                    if (!c.Controled)
                                    {
                                        left = false;
                                    }
                                    continue;
                                }

                                if (((level.GameObjects[j].Position.Location.X - 2 /* */ < c.Position.Right + 1) && (level.GameObjects[j].Position.Location.X + 8 >= c.Position.Right)) && (((level.GameObjects[j].Position.Location.Y < c.Position.Location.Y + c.Position.Height - 4) && (level.GameObjects[j].Position.Location.Y + level.GameObjects[j].Position.Height > c.Position.Location.Y + c.Position.Height - 4)) || ((level.GameObjects[j].Position.Location.Y < c.Position.Location.Y + 4) && (level.GameObjects[j].Position.Location.Y + level.GameObjects[j].Position.Height > c.Position.Location.Y + 4)) || ((level.GameObjects[j].Position.Location.Y >= c.Position.Location.Y + 4) && (level.GameObjects[j].Position.Location.Y + level.GameObjects[j].Position.Height <= c.Position.Location.Y + c.Position.Height - 4))))
                                {
                                    c.Position = new RectangleF(new PointF(level.GameObjects[j].Position.Left - c.Position.Width - 1, c.Position.Y), c.Position.Size);
                                    c.Right    = false;
                                    if (!c.Controled)
                                    {
                                        right = false;
                                    }
                                    continue;
                                }

                                if ((c.Position.Bottom > level.GameObjects[j].Position.Top) && ((((c.Position.X > level.GameObjects[j].Position.X + 3) && (c.Position.X < level.GameObjects[j].Position.Right - 3)) || ((c.Position.Right > level.GameObjects[j].Position.X + 3) && (c.Position.Right < level.GameObjects[j].Position.Right - 3))) || ((c.Position.X >= level.GameObjects[j].Position.X + 3) && (c.Position.Right <= level.GameObjects[j].Position.Right - 3)) || ((c.Position.X <= level.GameObjects[j].Position.X + 3) && (c.Position.Right >= level.GameObjects[j].Position.Right - 3))))
                                {
                                    c.PhysBody.OnGroundCollision(level.GameObjects[j].Position.Top - c.Position.Height);
                                    c.PhysBody.OnGround = true;

                                    if (level.GameObjects[j].Position.X > c.Position.X)
                                    {
                                        c.Right = true;
                                    }
                                    if (level.GameObjects[j].Position.Right < c.Position.Right)
                                    {
                                        c.Right = false;
                                    }
                                }

                                if ((c.Position.Bottom >= level.GameObjects[j].Position.Bottom))
                                {
                                    c.Position          = new RectangleF(new PointF(c.Position.X, level.GameObjects[j].Position.Bottom), c.Position.Size);
                                    c.PhysBody.Velocity = new PointF(c.PhysBody.Velocity.X, 4);
                                }

                                continue;
                            }

                            if (level.GameObjects[j].Name == "ControlBall")
                            {
                                if (profile.Hero.LevelControlBot >= c.LevelControl)
                                {
                                    profile.Hero.ControlledBot = (Bot)level.GameObjects[i];
                                }

                                deletegameobject.Add(level.GameObjects[j]);
                            }

                            if (c.Controled && level.GameObjects[j].Name == "Switcher" && (UpKey == Keys.E))
                            {
                                Switcher s = level.GameObjects[j] as Switcher;
                                s.Activated = !s.Activated;
                            }

                            if (c.Controled && level.GameObjects[j].Name == "SwitcherPassword" && (UpKey == Keys.E))
                            {
                                pause = true;
                                SwitcherPassword switcherpassword = level.GameObjects[j] as SwitcherPassword;
                                UpKey = 0;
                                switcherpassword.TryOn(this);
                            }
                        }
                    }

                    if (!c.PhysBody.OnGround)
                    {
                        c.PhysBody.UpdatePositionY(dt);
                    }
                }

                if (level.GameObjects[i].Name == "ControlBall")
                {
                    bool removed = false;

                    for (int j = 0; j < level.GameObjects.Count; j++)
                    {
                        if (level.GameObjects[i].Position.IntersectsWith(level.GameObjects[j].Position) && level.GameObjects[j] != level.GameObjects[i])
                        {
                            if (level.GameObjects[j].Name == "Platform" || level.GameObjects[j].Name == "Ladder" || level.GameObjects[j].Name == "Door")
                            {
                                deletegameobject.Add(level.GameObjects[i]);
                                removed = true;
                                break;
                            }
                        }
                    }

                    if (!removed)
                    {
                        level.GameObjects[i].Position = new RectangleF(new PointF(level.GameObjects[i].Position.X + dt * currentspeedcontrolball, level.GameObjects[i].Position.Y), level.GameObjects[i].Position.Size);
                    }
                }

                if (level.GameObjects[i] is Item)
                {
                    Item item = level.GameObjects[i] as Item;
                    item.PhysBody.OnGround = false;

                    for (int j = 0; j < level.GameObjects.Count; j++)
                    {
                        if (item.Position.IntersectsWith(level.GameObjects[j].Position) && level.GameObjects[j] != item)
                        {
                            if (level.GameObjects[j].Name == "Platform" || (level.GameObjects[j].Name == "Door" && ((level.GameObjects[j] is Door) ? !(level.GameObjects[j] as Door).Opened : false)))
                            {
                                if (((item.Position.Bottom >= level.GameObjects[j].Position.Y) /*&& (item.Position.Bottom < level.GameObjects[j].Position.Bottom)) && ((((item.Position.X > level.GameObjects[j].Position.X) && (item.Position.X < level.GameObjects[j].Position.Right)) || ((item.Position.Right > level.GameObjects[j].Position.X) && (item.Position.Right < level.GameObjects[j].Position.Right))) || ((item.Position.X >= level.GameObjects[j].Position.X) && (item.Position.Right <= level.GameObjects[j].Position.Right)) || ((item.Position.X <= level.GameObjects[j].Position.X) && (item.Position.Right >= level.GameObjects[j].Position.Right)))*/))
                                {
                                    item.PhysBody.OnGroundCollision(level.GameObjects[j].Position.Top - item.Position.Height);
                                    item.PhysBody.OnGround = true;
                                }

                                if (((level.GameObjects[j].Position.Location.X + level.GameObjects[j].Position.Width > item.Position.Location.X) && (level.GameObjects[j].Position.Location.X + level.GameObjects[j].Position.Width - 5 <= item.Position.Location.X)) && (((level.GameObjects[j].Position.Location.Y < item.Position.Location.Y + item.Position.Height - 4) && (level.GameObjects[j].Position.Location.Y + level.GameObjects[j].Position.Height > item.Position.Location.Y + item.Position.Height - 4)) || ((level.GameObjects[j].Position.Location.Y < item.Position.Location.Y + 4) && (level.GameObjects[j].Position.Location.Y + level.GameObjects[j].Position.Height > item.Position.Location.Y + 4)) || ((level.GameObjects[j].Position.Location.Y > item.Position.Location.Y) && (level.GameObjects[j].Position.Location.Y + level.GameObjects[j].Position.Height <= item.Position.Location.Y + item.Position.Height - 4))))
                                {
                                    item.Position = new RectangleF(new PointF(level.GameObjects[j].Position.Right, item.Position.Y), item.Position.Size);
                                }

                                if (((level.GameObjects[j].Position.Location.X < item.Position.Location.X + item.Position.Width + 1) && (level.GameObjects[j].Position.Location.X + 5 >= item.Position.Location.X + item.Position.Width)) && (((level.GameObjects[j].Position.Location.Y < item.Position.Location.Y + item.Position.Height) && (level.GameObjects[j].Position.Location.Y + level.GameObjects[j].Position.Height > item.Position.Location.Y + item.Position.Height)) || ((level.GameObjects[j].Position.Location.Y < item.Position.Location.Y) && (level.GameObjects[j].Position.Location.Y + level.GameObjects[j].Position.Height > item.Position.Location.Y)) || ((level.GameObjects[j].Position.Location.Y >= item.Position.Location.Y) && (level.GameObjects[j].Position.Location.Y + level.GameObjects[j].Position.Height <= item.Position.Location.Y + item.Position.Height))))
                                {
                                    item.Position = new RectangleF(new PointF(level.GameObjects[j].Position.Left - item.Position.Width - 1, item.Position.Y), item.Position.Size);                                    //  continue;
                                }

                                if ((item.Position.Bottom >= level.GameObjects[j].Position.Bottom))
                                {
                                    item.Position          = new RectangleF(new PointF(item.Position.X, level.GameObjects[j].Position.Bottom), item.Position.Size);
                                    item.PhysBody.Velocity = new PointF(item.PhysBody.Velocity.X, 4);
                                }

                                continue;
                            }
                        }
                    }

                    if (!item.PhysBody.OnGround)
                    {
                        item.PhysBody.UpdatePositionY(dt);
                    }
                }
            }

            while (deletegameobject.Count != 0)
            {
                level.GameObjects.Remove(deletegameobject[0]);
                drawingobjects.Remove(deletegameobject[0]);
                deletegameobject.RemoveAt(0);
            }
        }