|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.03.2014, 18:32 | #1 |
Регистрация: 18.03.2014
Сообщений: 5
|
(c#)Как только элемент label появится, он должен начать движение со скоростью 1 пиксель за 1 миллисекунду в сторону нижнего угла,
(c#)Как только элемент label появится, он должен начать движение со скоростью 1 пиксель за 1 миллисекунду в сторону нижнего угла, при том при столкновении label с границами формы,(форма 500; 250) он должен отклонятся и продолжать движения в противоположную сторону, меняя цвет в соответствии с цветами радуги=) выручайти=) Это осталась концовка от задания, это вот не выходит сделать=) Кто чем поможет буду признателен=) Если что то не понятно, сообщите...я допишу, могу выслать свой основной код если надо.
Последний раз редактировалось Sinner_777; 18.03.2014 в 18:35. |
18.03.2014, 20:29 | #3 |
Пользователь
Регистрация: 05.03.2012
Сообщений: 29
|
капец спам.
Народ совсем обленился. |
18.03.2014, 21:05 | #4 |
Форумчанин
Регистрация: 11.03.2011
Сообщений: 426
|
Не ошибся, орёл? 1 пиксель за 1 миллисекунду?
|
18.03.2014, 21:28 | #5 |
Новичок
Джуниор
Регистрация: 14.03.2014
Сообщений: 2
|
Ставишь в форму таймер(timer) и панель(panel).
Панель делаешь dock = fill; //нужно разместить в классе формы //sx - по горизонтали sy - по вертикали int sx = 1, sy = 1; //в свойствах меняешь интервал в мс. //для того что бы таймер начал работать, ему нужно указать //в свойствах Enabled = true, либо в коде timer.Enabled = true; //в таймере событие tick: { int x = label.Location.X; //текущее положение по Х int y = label.Location.Y; //текущее положение по У int w = label.Width; // расмеры лейбла что бы контролировать не выходит int h = label.Height; //ли он за границы int maxx = panel.Width; //размеры панели по которой бегает лейбл int maxy = panel.Height; //проверка не выходит ли при следуэщем шаге лейбл за границы панели if (x + sx < minx || x + sx + w > maxx) sx = -sx; else x += sx; if (y + sy < miny|| y + sy + h> maxy) sy = -sy; else y += sy; //помещает заново лейбл, но визуально его перемещает циклически с интервалом //заданого в таймере label.Location = new.Point(x,y); } |
18.03.2014, 21:32 | #6 |
Новичок
Джуниор
Регистрация: 14.03.2014
Сообщений: 2
|
А и визуально не сильно будет ощутимо, если ты будешь перемещать на 15 с интервалом 15 мс, или на 1, с интервалом 1 мс. Но программа будет работать быстрее с 15 мс а 15.. В смысле экономии ресурсов системы.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как только элемент label появится, он должен начать движение со скоростью 1 пиксель за 1 миллисекунду в сторону нижнего угла, при | Sinner_777 | Помощь студентам | 1 | 18.03.2014 20:26 |
Найти расстояние от верхнего левого угла до правого нижнего угла матрицы | iMisha | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 03.04.2012 22:19 |
Движение со скоростью света и быстрее скорости света - Сверхсветовое движение | Alar | Свободное общение | 354 | 13.11.2011 21:32 |
В прямой четырехугольной призме провести сечение, проходящее через сторону нижнего основания под углом 30 | ramp1 | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 04.06.2011 10:39 |
движение авто со скоростью | saltonik | Помощь студентам | 9 | 02.04.2011 23:18 |