Esempio n. 1
0
 public void Draw(SpriteBatch g, GameTime gametime)
 {
     if (num != 0)
     {
         Ap.Draw(gametime, g, Position, SpriteEffects.None);
         Ap2.Draw(gametime, g, new Vector2(Position.X - 5, Position.Y + 20), SpriteEffects.None);
     }
 }
Esempio n. 2
0
 public void Update(Vector2 JoueurPosition, bool Rebound)
 {
     Position = new Vector2(JoueurPosition.X, JoueurPosition.Y - 20);
     if (Rebound)
     {
         Ap2.PlayAnimation(AllAnimationSonic.BulleJump);
         Ap.PlayAnimation(null);
         Position.Y += 10;
     }
     else
     if (num == 1)
     {
         Ap2.PlayAnimation(AllAnimationSonic.BulleAnim);
         Ap.PlayAnimation(AnimationShield);
     }
 }
Esempio n. 3
0
        /// <summary>
        /// Обработчик нажатия на кнопку сохранения параметров.
        /// Появляется окно выбора директории, затем файл
        /// записывается в выбранное место. Также обрабатываются
        /// исключения, которые могут возникнуть при записи.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void bSave_Click(object sender, EventArgs e)
        {
            string path = "";

            if (saveFileInput.ShowDialog()
                == DialogResult.OK)
            {
                path = saveFileInput.FileName;
            }

            try
            {
                File.WriteAllLines(path, new string[]
                                   { N.ToString(), Mu.ToString(), Mv.ToString(), Um.ToString(), Vm.ToString(),
                                     du.ToString(), dv.ToString(), u.ToString(), v.ToString(), a.ToString(),
                                     Tc.ToString(), up1.ToString(), up2.ToString(), vp1.ToString(), vp2.ToString(),
                                     Ap1.ToString(), Ap2.ToString(), gamma.ToString(), _mu.ToString(), H.ToString(),
                                     pq.ToString() });
            }
            catch (FileNotFoundException)
            {
                MessageBox.Show("Файл не существует. " +
                                "Начните заново.");
            }
            catch (IOException)
            {
                MessageBox.Show("Ошибка в работе с файлом." +
                                " Начните заново.");
            }
            catch (UnauthorizedAccessException)
            {
                MessageBox.Show("Ошибка доступа к файлу:" +
                                " нет разрешения на доступ. Начните заново.");
            }
            catch (System.Security.SecurityException)
            {
                MessageBox.Show("Ошибка безопасности при " +
                                "работе с файлом. Начните заново.");
            }
            catch (Exception ex)
            {
                MessageBox.Show("Произошла ошибка: " + ex.Message);
            }
            finally { MessageBox.Show("Работа с файлом окончена."); }
        }
Esempio n. 4
0
        /// <summary>
        /// Обработчик нажатия на кнопку перехода к
        /// дальнейшей работе с данными, происходит
        /// запись файла входных параметров, создание
        /// и открытие новой формы на основе текущей,
        /// сокрытие текущей формы.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void bProceed_Click(object sender, EventArgs e)
        {
            try
            {
                File.WriteAllLines("Input.txt", new string[]
                                   { N.ToString(), Mu.ToString(), Mv.ToString(), Um.ToString(), Vm.ToString(),
                                     du.ToString(), dv.ToString(), u.ToString(), v.ToString(), a.ToString(),
                                     Tc.ToString(), up1.ToString(), up2.ToString(), vp1.ToString(), vp2.ToString(),
                                     Ap1.ToString(), Ap2.ToString(), gamma.ToString(), _mu.ToString(), H.ToString(),
                                     pq.ToString() });
            }
            catch (Exception ex)
            {
                MessageBox.Show("Произошла ошибка: " + ex.Message);
            }

            this.Hide();

            new Operations(this, prevForm, funcs, N, Mu, Mv, Um, Vm, du, dv, u, v, a, Tc,
                           up1, up2, vp1, vp2, Ap1, Ap2, gamma, _mu, H, pq).Show();
        }
Esempio n. 5
0
        /// <summary>
        /// Метод, задающий внешний вид формы и значения
        /// параметров симуляции их дефолтными значениями,
        /// тут же происходит натсройка текста надписей
        /// и подсказок для пользователя.
        /// </summary>
        void Begin()
        {
            panel.BackColor = panelColor;

            foreach (Button b in GetAllControlsOfType <Button>(this))
            {
                b.FlatAppearance.MouseOverBackColor = hoverColor;
                b.ForeColor = textColor;
            }

            foreach (Label l in GetAllControlsOfType <Label>(this))
            {
                l.ForeColor = textColor;
            }

            du  = dv = Um = Vm = 0.1666667f;
            u   = v = vp1 = vp2 = gamma = 0;
            a   = 0.42f;
            Tc  = 20;
            up1 = 0.03125f;
            up2 = -0.03125f;
            Ap1 = Ap2 = 300;
            _mu = 3000; H = 7;
            N   = 128;
            Mu  = Mv = 8;
            pq  = 576;

            lN.Text     = $"N = {N}";
            lMu.Text    = $"Mu = {Mv}";
            lMv.Text    = $"Mv = {Mu}";
            lUm.Text    = $"Um = {Um}";
            lVm.Text    = $"Vm = {Vm}";
            ldu.Text    = $"du = {dv}";
            ldv.Text    = $"dv = {dv}";
            lu.Text     = $"u = {u}";
            lv.Text     = $"v = {v}";
            lTc.Text    = $"Tc = {Tc}";
            la.Text     = $"a = {a}";
            lup1.Text   = $"up1 = {up1}";
            lup2.Text   = $"up2 = {up2}";
            lvp1.Text   = $"vp1 = {vp1}";
            lvp2.Text   = $"vp2 = {vp2}";
            lAp1.Text   = $"Ap1 = {Ap1}";
            lAp2.Text   = $"Ap2 = {Ap2}";
            lgamma.Text = $"gamma = {gamma}";
            l_mu.Text   = $"_mu = {_mu}";
            lH.Text     = $"H = {H}";
            lpq.Text    = $"pq = {pq}";

            InN.Text     = N.ToString();
            InMu.Text    = Mu.ToString();
            InMv.Text    = Mu.ToString();
            InUm.Text    = Um.ToString();
            InVm.Text    = Vm.ToString();
            Indu.Text    = dv.ToString();
            Indv.Text    = dv.ToString();
            Inu.Text     = u.ToString();
            Inv.Text     = v.ToString();
            InTc.Text    = Tc.ToString();
            Ina.Text     = a.ToString();
            Inup1.Text   = up1.ToString();
            Inup2.Text   = up2.ToString();
            Invp1.Text   = vp1.ToString();
            Invp2.Text   = vp2.ToString();
            InAp1.Text   = Ap1.ToString();
            InAp2.Text   = Ap2.ToString();
            Ingamma.Text = gamma.ToString();
            In_mu.Text   = _mu.ToString();
            InH.Text     = H.ToString();
            Inpq.Text    = pq.ToString();

            toolTip.SetToolTip(lN, "Количество векторов наблюдений," +
                               "\nпо которым формируется статистика." +
                               "\nЧисло должно быть целое и больше 0");
            toolTip.SetToolTip(lMu, "Количество модулей, на которые" +
                               "\nразбивается антенная решетка по длине" +
                               "\nЧисло должно быть целое и больше 0");
            toolTip.SetToolTip(lMv, "Количество модулей, на которые" +
                               "\nразбивается антенная решетка по ширине" +
                               "\nЧисло должно быть целое и больше 0");
            toolTip.SetToolTip(lUm, "Ширина главного лепестка диаграммы" +
                               "\nнаправленности модуля по одному углу." +
                               "\nРекомендуемое значение: эффективная" +
                               "\nразрешающая способность модуля " +
                               "\nпо одному измерению - 1/6 радиана");
            toolTip.SetToolTip(lVm, "Ширина главного лепестка диаграммы" +
                               "\nнаправленности модуля по другому углу." +
                               "\nРекомендуемое значение: эффективная" +
                               "\nразрешающая способность модуля " +
                               "\nпо одному измерению - 1/6 радиана");
            toolTip.SetToolTip(ldu, "Сдвиг до центра " +
                               "просматриваемого сектора\nпо одному углу");
            toolTip.SetToolTip(ldv, "Сдвиг до центра" +
                               " просматриваемого сектора\nпо другому углу");
            toolTip.SetToolTip(lu, "Предполагаемое положение" +
                               " цели по одному углу,\nизменяется от -1/12 " +
                               "до 1/12 радиана с шагом 1/48 радиана");
            toolTip.SetToolTip(lv, "Предполагаемое положение" +
                               " цели по другому углу,\nизменяется от -1/12" +
                               " до 1/12 радиана с шагом 1/48 радиана");
            toolTip.SetToolTip(la, "Мощность приходящего сигнала." +
                               "\nЧисло должно быть больше 0");
            toolTip.SetToolTip(lTc, "Начало прихода сигнала");
            toolTip.SetToolTip(lvp1, "Положение помех по другому углу");
            toolTip.SetToolTip(lvp2, "Положение помех по другому углу");
            toolTip.SetToolTip(lup1, "Положение помех по одному углу");
            toolTip.SetToolTip(lup2, "Положение помех по одному углу");
            toolTip.SetToolTip(lAp1, "Мощность помех. " +
                               "Число должно быть больше 0");
            toolTip.SetToolTip(lAp2, "Мощность помех. " +
                               "Число должно быть больше 0");
            toolTip.SetToolTip(lgamma, "Параметр гамма");
            toolTip.SetToolTip(l_mu, "Параметр регуляризации корреляционной" +
                               " матрицы.\nЧисло должно быть больше 0");
            toolTip.SetToolTip(lH, "Пороговое значение мощности сигнала" +
                               " для вывода точки.\nЧисло должно быть больше 0");
            toolTip.SetToolTip(lpq, "Количество блоков в 36 областях," +
                               "\nпо которым составляется корреляционная матрица." +
                               "\nРекомендуемое значение:" +
                               "\n36 * 2000 отсчетов по времени / N векторов выборки," +
                               "\nв противном случае размерности матриц будут конфликтующими.");
            toolTip.SetToolTip(bGet, "Для того, чтобы загрузить параметры из файла,\n" +
                               "файл должен соответствовать определенным требованиям:" +
                               "\n-расширение .txt\n-параметры записаны каждый с новой строки без" +
                               "\nдругих разделителей\n-дробные числа записаны через ." +
                               "\n-параметры в файле идут в такой последовательности:" +
                               "\nN, Mu, Mv, Um, Vm, du, dv, u,\nv, a, Tc, up1, up2, vp1, vp2,\n" +
                               "Ap1, Ap2, gamma, mu, H, pq." +
                               "\nВ противном случае считывание будет некорректным.");
            toolTip.SetToolTip(bExit, "Внимание!" +
                               "\nПри возвращении прогресс текущей сессии будет потерян." +
                               "\nУбедитесь в том, что вы сохранили все файлы," +
                               "\nкоторые не хотите потерять.");
        }