예제 #1
0
파일: Main.cs 프로젝트: Tyreyn/JPWP
 /// <summary>
 /// wczytanie zasobów programu numer 1
 /// </summary>
 public Main(GraphicsDevice graphicsDevice)
 {
     menu_Koniec = new Menu_Koniec(graphicsDevice);
     menu_Pauza  = new Menu_Pauza(graphicsDevice);
     _menu       = new Menu(graphicsDevice);
     _kamera     = new Kamera(graphicsDevice);
     akt_postac  = new Postac(graphicsDevice);
     mapa1       = new Mapa(graphicsDevice);
     _podloga    = new Podloga(graphicsDevice);
     _podloga.wczytaj();
     darkness   = new RenderTarget2D(graphicsDevice, Mapa.mapa_1.GetLength(1) * 64, Mapa.mapa_1.GetLength(0) * 64);
     mainTarget = new RenderTarget2D(graphicsDevice, Mapa.mapa_1.GetLength(1) * 64, Mapa.mapa_1.GetLength(0) * 64);
 }
예제 #2
0
        //JESLI KAMERA WYCHODZI POZA MAPE NIE ZMIENIA POLOZENIA
        /// <summary>
        /// Odświeżanie kamery
        /// </summary>
        /// <param name="gameTime">czas gry</param>
        /// <param name="postac">wczytywanie pozycji i ruchu postaci</param>
        public void Update(GameTime gameTime, Postac postac)
        {
            while (update == true)
            {
                pozycja_kamera = new Vector2(Postac.p_startowy.X, Postac.p_startowy.Y);

                if (Postac.p_startowy.X - 640 < 0)
                {
                    while (pozycja_kamera.X < 640)
                    {
                        pozycja_kamera.X += 5;
                    }
                    while (pozycja_kamera.X > x)
                    {
                        pozycja_kamera.X -= 5;
                    }
                }
                if (Postac.p_startowy.Y + 512 < y)
                {
                    while (pozycja_kamera.Y < y)
                    {
                        pozycja_kamera.Y += 5;
                    }
                    while (pozycja_kamera.Y > y)
                    {
                        pozycja_kamera.Y -= 5;
                    }
                }

                update = false;
            }
            var przemieszczenie = (int)postac.przyspieszenie.Y;

            if ((int)postac.przyspieszenie.Y >= 10)
            {
                przemieszczenie = 6;
            }
            else if ((int)postac.przyspieszenie.Y <= -10)
            {
                przemieszczenie = -6;
            }
            Srodek = new Vector2(1280 / 2 - (int)postac.przyspieszenie.X * 0.75f, 1024 / 2 - przemieszczenie * 0.15f);
            delta  = (int)gameTime.ElapsedGameTime.TotalSeconds;

            if ((postac.Hitbox.X - 640 > 0 && postac.Hitbox.X + 640 < x))
            {
                if (pozycja_kamera.X < postac.Hitbox.X)
                {
                    pozycja_kamera.X += 5;
                }
                if (pozycja_kamera.X > postac.Hitbox.X)
                {
                    pozycja_kamera.X -= 5;
                }
                if (pozycja_kamera.X > postac.Hitbox.X && pozycja_kamera.X < postac.Hitbox.X)
                {
                    pozycja_kamera.X = postac.Hitbox.X;
                }
            }
            if (postac.Hitbox.Y + 512 < y && postac.Hitbox.Y - 512 > 0)
            {
                while (pozycja_kamera.Y < postac.Hitbox.Y)
                {
                    pozycja_kamera.Y += 5;
                }
                while (pozycja_kamera.Y > postac.Hitbox.Y)
                {
                    pozycja_kamera.Y -= 5;
                }

                System.Diagnostics.Debug.WriteLine("KAMERA Y");
            }



            transformGracz = Matrix.CreateTranslation(-(int)pozycja_kamera.X,
                                                      -(int)pozycja_kamera.Y, 0) *
                             Matrix.CreateScale(new Vector3(Zoom, Zoom, 0)) *
                             Matrix.CreateTranslation(new Vector3(Srodek, 0));
        }