Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
4 / 4 / 1
Регистрация: 30.11.2013
Сообщений: 108

Перемещение фигуры на форме. Исходное положение задаётся случайно

29.06.2014, 19:55. Показов 2417. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Возникла небольшая проблема. Хочу, чтобы от края экрана начал двигаться эллипс, при каждом запуске программы он естественно на разной высоте, но проблема в том,что он в каждый промежуток времени оказывается на разной высоте. Мне нужно, чтобы заданная в начале высота оставалась до конца его пролета.
C#
1
2
3
4
5
6
7
8
 Random rand = new Random();
 
       public void botR(Graphics g)
        {
            SolidBrush br = new SolidBrush(Color.Silver);
            int bot = rand.Next(0, ClientSize.Height - 50);
                g.FillEllipse(br, botX, bot, 100, 50);
        }
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.06.2014, 19:55
Ответы с готовыми решениями:

Перемещение нарисованной фигуры по форме
Как осуществить перемещение фигуры? Например, квадрата.

Как сделать перемещение нарисованной фигуры по форме
Всем добрый вечер. Подскажите как сделать перемещение нарисованной фигуры по форме? Допустим нарисовал круг,далее кликнули в любое место...

Как сделать плавное перемещение нарисованной фигуры по форме?
Здравствуйте, у меня есть задача: Передвижение фигур. Вообщем выполняю её так: создаю стартовую фигуру, указываю куда она должна...

11
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
29.06.2014, 20:35
Цитата Сообщение от BboyBlackjack Посмотреть сообщение
при каждом запуске программы он естественно на разной высоте
почему естественно?
Перемещается по таймеру? Чтобы высота не менялась, следует изменять только координату X
0
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
29.06.2014, 20:41
я так понимаю вы в цикле вызываете метод botR? уберите из метода рандомную переменную bot. Например пусть метод получает ее как параметр. Чтобы фигура перемещалась, при каждом итерации увеличивайте переменную bot на 1.
0
4 / 4 / 1
Регистрация: 30.11.2013
Сообщений: 108
29.06.2014, 21:45  [ТС]
Добавлено через 34 минуты
Дело в том, что у меня будет куча объектов и все они должны будут находиться на разной высоте, так как сделать так, чтобы высота задавалась рандомно, но оставалась такой-же какой и задалась, а не менялась каждый "тик" таймера
0
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
29.06.2014, 22:19
Вы читали что я написал?
0
4 / 4 / 1
Регистрация: 30.11.2013
Сообщений: 108
29.06.2014, 23:50  [ТС]
Да читал, к сожалению я вас не понял, т.к начинающий проггер. Объясните пожалуйста на примере

Добавлено через 1 час 29 минут
Помогите пожалуйста, очень надо
0
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
30.06.2014, 01:08
Цитата Сообщение от BboyBlackjack Посмотреть сообщение
оставалась такой-же какой и задалась, а не менялась каждый "тик" таймера
Это значит, что в методе, который выполняется по таймеру, высоту нельзя менять. Её нужно брать откуда-то извне. Сейчас высота задаётся в методе. Задавай её до начала выполнения метода
0
4 / 4 / 1
Регистрация: 30.11.2013
Сообщений: 108
30.06.2014, 01:14  [ТС]
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
        private void Form1_Load(object sender, EventArgs e)
        {
            int Y = rand.Next(50, 200);
            this.WindowState = FormWindowState.Maximized;
            BackColor = Color.Black;
            sp.Play();
        }
 
        public void bot(Graphics g) {
            SolidBrush br = new SolidBrush(Color.Silver);
            g.FillEllipse(br, 50, Y, 100, 50);
        
        }
Делаю так, кидает ошибку, уже хз что делать
0
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
30.06.2014, 01:21
Лучший ответ Сообщение было отмечено BboyBlackjack как решение

Решение

Цитата Сообщение от BboyBlackjack Посмотреть сообщение
Делаю так
Уже лучше. Только Y нужно объявить вне метода, на уровне класса:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int Y;
private void Form1_Load(object sender, EventArgs e)
    {
        Y = rand.Next(50, 200);
        this.WindowState = FormWindowState.Maximized;
        BackColor = Color.Black;
        sp.Play();
    }
 
    public void bot(Graphics g) {
        SolidBrush br = new SolidBrush(Color.Silver);
        g.FillEllipse(br, 50, Y, 100, 50);
    
    }
1
4 / 4 / 1
Регистрация: 30.11.2013
Сообщений: 108
30.06.2014, 01:31  [ТС]
Огромное вам спасибо, избавили от мучений) И еще вопросик, как сделать чтобы их появлялось в диапазоне от 3 до 15, на рандомном расстоянии друг от друга и чтобы с разной периодичностью вылетали?
0
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
30.06.2014, 01:34
Цитата Сообщение от BboyBlackjack Посмотреть сообщение
как сделать чтобы их появлялось в диапазоне от 3 до 15, на рандомном расстоянии друг от друга и чтобы с разной периодичностью вылетали?
кого их? Что есть сейчас?
0
4 / 4 / 1
Регистрация: 30.11.2013
Сообщений: 108
30.06.2014, 01:38  [ТС]
их это эллипсов, пока есть только один
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.06.2014, 01:38
Помогаю со студенческими работами здесь

Вернуть в исходное положение bg
Есть категории: div class="categories"> <button type="button" value="8" class="category">8 Категория</button> <button...

Исходное положение формы
Здравствуйте, Как вернуть форму в исходное положение не перезагружая программу? Спасибо.

Персонаж возвращается в исходное положение
Народ, помогите исправить проблему. Когда персонаж(Рыцарь) после анимации(Взмах меча) возвращается в позицию до анимации. Как это...

Возврат страницы в исходное положение
как сделать, чтобы страницы оставалось на том же месте после обновления, например где была нажата кнопка!?

Вернуть данные в исходное положение
Добрый день, ребята) Сделала в dbgrid сортировку по алфавиту. Код: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru