Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 21.05.2017
Сообщений: 3
1

Арканоид. Отражение шара и блок разрушаемый после двух попаданий

23.05.2017, 02:07. Показов 1711. Ответов 0

Author24 — интернет-сервис помощи студентам
Не получается правильно написать код для границ блоков (Block - PictureBox), чтобы происходило корректное отбитие шарика от не разрушаемых и разрушаемых блоков. Шарик залетает в блок и проходит по его границам слева-направо и наоборот дергаясь вверх-вниз в углах (если блок не разрушаемый, представлен код разрушаемого). Ударяясь о нижнюю или верхнюю границу шарик летит в противоположную сторону (Пример: шар летит и ударяется в нижнюю границу блока влево-вверх, отбивается и летит вправо-вниз. По-идее должен влево-вниз). Так же не знаю как сделать блок, разрушаемый после 2 ударов. Прошу вашей помощи.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 if ((Ball.Top + Ball.Height) >= Block.Top
                && Ball.Top <= (Block.Top + Block.Height)
                && (Ball.Left + Ball.Width) >= Block.Left
                && Ball.Left <= (Block.Left + Block.Width)
                && Block.Visible == true)                              //Верхняя и нижняя границы, вроде работают корректно
                {
                    if (iBallYStatus == 0) // движение шарика вверх
                    {
                        if ((Ball.Location.X <= (Block.Left + Block.Width) || Ball.Location.X >= (Block.Left + Block.Width - 2)) && (Ball.Location.Y >= (Block.Top + Block.Height - 39) && Ball.Location.Y <= (Block.Top + Block.Height + 3))) { BallXStatus = 0; }//отбитие от левой границы влево, след. if- вправо
                        if ((Ball.Location.X >= (Block.Left + Block.Width - 105) || Ball.Location.X >= (Block.Left + Block.Width - 102)) && (Ball.Location.Y >= (Block.Top + Block.Height - 39) && Ball.Location.Y <= (Block.Top + Block.Height + 3))) { BallXStatus = 1; } // Правая и левая границы, работают криво, шарик залетает в блок и скачет внутри него, а когда ударяется об верхнюю или нижнюю границу - улетает в противоположную сторону
 
                        BallYStatus = 1; // движение шарика вниз
                        Block.Visible = false;
                    }
                    else
                    {
                        if ((Ball.Location.X <= (Block.Left + Block.Width) || Ball.Location.X >= (Block.Left + Block.Width - 2)) && (Ball.Location.Y >= (Block.Top + Block.Height - 39) && Ball.Location.Y <= (Block.Top + Block.Height + 3))) { BallXStatus = 0; }//отбитие от левой границы влево, след. if- вправо
                        if ((Ball.Location.X >= (Block.Left + Block.Width - 105) || Ball.Location.X >= (Block.Left + Block.Width - 102)) && (Ball.Location.Y >= (Block.Top + Block.Height - 39) && Ball.Location.Y <= (Block.Top + Block.Height + 3))) { BallXStatus = 1; } // то же самое
 
                        BallYStatus = 0; // движение шарика вверх
                        Block.Visible = false;
                    }
                }
Вложения
Тип файла: rar Rab.rar (198.1 Кб, 12 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.05.2017, 02:07
Ответы с готовыми решениями:

Арканоид. Алгоритм отбивания шара от блоков
Всем привет. Пишу арканоид на С++ с помощью winapi. Уже доделал, но никак не могу придумать...

Отражение шара от стенок коробки
Я начал пытаться делать отражение шара от стенок коробки, но не особо получается. Очень нужна...

[Арканоид] Как вычислить скорость по X и Y имея угол направления шара и скорость движения?
Пишу арканоид(C++, SDL). Нашол формулу для определения угла с каким надо отразить шар от ракетки, в...

Найти вероятность того, что произойдет не менее двух попаданий
Здравствуйте уважаемые знатоки! Прошу помощи в решении задачек. Три стрелка производят выстрел...

0
23.05.2017, 02:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.05.2017, 02:07
Помогаю со студенческими работами здесь

Какова вероятность того, что цель поражена в результате двух попаданий?
По цели производится 2 одиночных выстрела. Вероятности попадания соответственно 0,4 и 0,9....

Чему равна напряженность поля у поверхности шара; на расстоянии 2 м от центра шара; внутри шара?
Электрический заряд 9 нКл равномерно распределен по поверхности шара радиусом 1 м. Чему равна...

Разрушаемый ландшафт
Как можно реализовать разрушение мира, примерно как в Worms Revolution? Первое, что приходит в...

В двух урнах содержатся по 6 белых и 4 чёрных шара
В двух урнах содержатся по 6 белых и 4 чёрных шара. Сначала из первой урны во вторую...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru