예제 #1
0
파일: Game.cs 프로젝트: micolla/StudyCSharp
        /// <summary>
        /// Инициализация игры Game
        /// </summary>
        /// <param name="form">Форма для связывания с игрой</param>
        public static void Init(Form form)
        {
            CreateLogFile();
            CheckWindowSize(form);
            Graphics g = form.CreateGraphics();

            Width    = form.ClientSize.Width;
            Height   = form.ClientSize.Height;
            _context = BufferedGraphicsManager.Current;
            // Связываем буфер в памяти с графическим объектом, чтобы рисовать в буфере
            Buffer             = _context.Allocate(g, new Rectangle(0, 0, Width, Height));
            _backGroundObjects = new List <BackGroundObject>();
            _bullets           = new List <Bullet>();
            _activeObjects     = new List <ActiveObject>();
            aidStack           = new Stack <AidKit>();
            gameScore          = 0;
            MakeStarSky(_backGroundObjects);
            MakeAsteroids(_activeObjects);
            _shuttle = CreateShuttle();
            PrepareAids(aidStack);
            _aid          = null;
            form.KeyDown += ControlKeyDown;
            timer         = new Timer {
                Interval = 100
            };
            timer.Start();
            timer.Tick     += Timer_Tick;
            form.ResizeEnd += Form_SizeChanged;
        }
예제 #2
0
 public GameClient(AbstractGameFactory factory, int fieldWidth, int fieldHeight)
 {
     _shuttle           = factory.CreateShuttle(fieldHeight);
     _activeObjects     = factory.MakeActiveObjects(fieldWidth, fieldHeight);
     _aidsClip          = factory.MakeAidKit();
     _backGroundObjects = factory.MakeStarSky(fieldWidth, fieldHeight);
     _aid = null;
     SubcribeAllEvents();
 }
예제 #3
0
파일: Game.cs 프로젝트: micolla/StudyCSharp
 public static void CreateShuttle(Form form)
 {
     try
     {
         Image        img         = Image.FromFile("img\\space_shuttle.jpg");
         SpaceShuttle tmplShuttle = new SpaceShuttle(new Point(5, Game.Height / 2), new Point(0, 0), new Size(25, 25), img);
         form.KeyDown += tmplShuttle.MoveShuttle;
         _objs.Add(tmplShuttle);
     }
     catch (System.IO.FileNotFoundException e)
     {
     }
 }
예제 #4
0
 /// <summary>
 /// Установка шатла
 /// </summary>
 public override SpaceShuttle CreateShuttle(int height)
 {
     try
     {
         Image        img         = Image.FromFile(@"img\space_shuttle.jpg");
         SpaceShuttle tmplShuttle = new SpaceShuttle(new Point(5, height / 2), new Size(25, 25), img);
         return(tmplShuttle);
     }
     catch (System.IO.FileNotFoundException e)
     {
         throw new GameObjects.Exceptions.GameObjectException(@"Проверьте наличие файла с картинкой шатла " + e.Message);
     }
 }
예제 #5
0
파일: Game.cs 프로젝트: micolla/StudyCSharp
 /// <summary>
 /// Установка шатла
 /// </summary>
 /// <param name="form">Форма для связи с событием KeyDown</param>
 private static SpaceShuttle CreateShuttle()
 {
     try
     {
         Image        img         = Image.FromFile(@"img\space_shuttle.jpg");
         SpaceShuttle tmplShuttle = new SpaceShuttle(new Point(5, Game.Height / 2), new Size(25, 25), img);
         tmplShuttle.LogAction       += ShowLogs;
         tmplShuttle.LogAction       += WriteLogs;
         tmplShuttle.ShuttleDieEvent += Finish;
         return(tmplShuttle);
     }
     catch (System.IO.FileNotFoundException e)
     {
         throw new GameObjects.Exceptions.GameObjectException(@"Проверьте наличие файла с картинкой шатла " + e.Message);
     }
 }