/// <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); }
//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)); }