/// <summary>Инициализация игровой логики</summary> /// <param name="form">Игровая форма</param> public static void Init(StarWarsForm form) { Width = form.Width; Height = form.Height; __Context = BufferedGraphicsManager.Current; var graphics = form.CreateGraphics(); Buffer = __Context.Allocate(graphics, new Rectangle(0, 0, Width, Height)); __Timer.Tick += OnTimerTick; __Timer.Enabled = true; }
private static void Main() { #region Активация стилей оформления пользовательского интерфейса для приложения Win-Forms Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); #endregion #region Запуск игры Application.Run(new SplashScreen()); var login_window = new LoginWindow(); Application.Run(login_window); var user_name = login_window.UserNameTextBox.Text; #endregion #region Игровая логика // Создаём главную форму StarWarsForm game_form = new StarWarsForm { Width = 1024, Height = 768, FormBorderStyle = FormBorderStyle.FixedSingle // Запрещаем ей менять свои размеры }; Game.Load(game_form); // Загрузка данных игровой логики Game.Init(game_form); // Инициализация игровой логики game_form.Show(); // Показываем форму на экране //Game.Draw(); // Отрисовываем кадр Application.Run(game_form); // Запускаем процесс обработки очереди сообщений Windows #endregion }
/*static Button btnNew; * static Button btnRecords; * static Button btnExit;*/ /// <summary>Загрузка данных игровой логики</summary> public static void Load(StarWarsForm form) { Width = form.Width; Height = form.Height; __GameObjects = new GameObject[30]; var rnd = new Random(); //Звезды for (var i = 0; i < __GameObjects.Length; i++) { int r = rnd.Next(5, 50); var size = rnd.Next(10, 30); __GameObjects[i] = new Star( new BaseObjectParams { Position = new Point(Width, (rnd.Next(0, Height))), Speed = new Point(rnd.Next(0, i), 0), Size = new Size(size, size) }, rnd.Next(0, 5)); } //Астероиды const int asteroids_count = 10; __Asteroids = new Asteroid[asteroids_count]; for (var i = 0; i < asteroids_count; i++) { var speed = rnd.Next(3, 10); var Power = rnd.Next(Asteroid.powerMin, Asteroid.powerMax); __Asteroids[i] = new Asteroid( new BaseObjectParams { Position = new Point(rnd.Next(0, Width), rnd.Next(0, Height)), Speed = new Point(speed, (rnd.Next(1, speed) % 2 == 0) ? -rnd.Next(1, speed): rnd.Next(1, speed)), //параметр зависит от Power Size = new Size(0, 0) }, Power ); } //Пули const int BulletPower = 1; __Bullet = new Bullet( new BaseObjectParams { Position = new Point(0, 200), Speed = new Point(3, 0), Size = new Size(4, 1) }, BulletPower); }