Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Baxetle
0 / 0 / 0
Регистрация: 29.12.2013
Сообщений: 1
1

Шар исчезнет при попадании в прямоугольник

09.04.2014, 23:56. Просмотров 327. Ответов 1
Метки нет (Все метки)

Всем здравствуйте, нужна ваша помощь. Нахожусь на начальном этапе изучения C#... Не изучил еще все нюансы и команды. Помогите пожалуйста закончить программу.
Имеется кнопка, при нажатии на которую появляется движущийся красный шарик, это я реализовал... также в окне находится прямоугольник, при попадании в который шарик исчезает.
Не могу придумать как закончить цикл исчезновения шарика. Вот начало кода

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
namespace MovingBalls
{
    delegate void DelEv();      // Делегат события
    class Ball
    {
        public event DelEv ev;             // Объявление события
        public event DelEv evSpecial;   // Объявление специального события
        private int x, y;                     // Координаты
        private int w, h;                    // Ширина и высота
        private int dx, dy;                 // Приращения координат шара
        private Thread t;               
        private bool life;              
 
        public int X
        {
            get { return x; }
        }
 
        public int Y
        {
            get { return y; }
        }
 
        // Конструктор
        public Ball(int X, int Y, int Dx, int Dy, int W, int H)
        {
            w = W;
            h = H;
            x = X;
            y = Y;
            dx = Dx;
            dy = Dy;
            // Создать и стартовать поток
            life = true;
            t = new Thread(new ThreadStart(BallFunc));
            t.Start();
        }
 
        private void BallFunc()
        {
            while (life)
            {
                x += dx;
                y += dy;
                if (x>w || x<0)
                {
                    dx = -dx;
                    if (evSpecial != null)
                    {
                        evSpecial();
                    }
                }
 
                if (y>h || y<0)
                {
                    dy = -dy;
                    if (evSpecial != null)
                    {
                        evSpecial();
                    }
                }
            
                if(ev != null)
                {
                    ev();
                }
                Thread.Sleep(100);
 
                if (x>=90 && x<=190 && y>=150 && y<=200)
                {
                    
                }
            }
        }
Собсна вот этот последний иф и нужно закончить, чтобы шарик исчезал. Дайте подсказочку ...
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2014, 23:56
Ответы с готовыми решениями:

Рандомное движение курсора мыши вне формы при попадании на пиксель определенного цвета
Здравствуйте, можно ли реализовать рандомное движение мыши вне формы и нажатие мыши, при наведении...

Какова вероятность вынуть из урны: белый шар; черный шар; синий шар
В урне 3 белых и 5 черных шара. Какова вероятность вынуть из урны: а) белый шар б) черный шар...

Удочерение объекта при попадании в Коллайдер
Моя задумка:- Если коллайдер одного объекта соприкасается с коллайдером другого ( Под тегом Item)...

Очистка TextBox при попадании в него курсора
Добрый день всем. Подскажите пожалуста как при попадании курсора в TextBox он удалял надпись...

Завершение игры при попадании головы змеи в стену
как сделать ,чтобы поле было ограниченно, что при попадании в стену головы змеи, игра завершалась,...

1
Learx
1047 / 854 / 194
Регистрация: 31.03.2010
Сообщений: 2,506
10.04.2014, 16:10 2
вместо if-а пишем:
C#
1
life = x<90 || x>190 || y<150 || y>200;
Добавлено через 1 минуту
если шарик вне прямоугольника, то life будет true и while продолжит работу
иначе while завершится
1
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2014, 16:10

Изменить цвет эллипса при его попадании в квадрат
Очень нужна помощь реализовал движение эллипса но никак не выходит реализовать изменение цвета...

При попадании курсора мыши на кнопку изменить ее положение
procedure TForm2.OnMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin...

Как при попадании курсора на Textbox нажать на клавишу Insert?
Подскажите пожалуста, как при попобании курсора на Textbox програмным путем нажать на клавишу...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.