|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
15.04.2012, 15:27 | #1 |
Пользователь
Регистрация: 15.01.2012
Сообщений: 14
|
Обработка столкновений с блоками
Здравствуйте, я пишу курсовую темой которой является, разработка игры Арканоид на C++. У меня появилась проблема в обработки столкновений с блоками.
Для создания блоков я создал массив объектов, объекты описаны классом. Код:
для движения шарика использую функцию Код:
как это осуществить? Последний раз редактировалось alonix; 15.04.2012 в 15:55. |
15.04.2012, 15:36 | #2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
Код не разбирал, но идея такова: "пробегать" циклом по всем блокам, и если расстояние от центра шарика до центра блока (можно подумать и по другому параметру), у которого vis true, меньше какой-то константы, то присвоить false и изменить направление шарика.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
Последний раз редактировалось BDA; 15.04.2012 в 15:39. |
15.04.2012, 15:45 | #3 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Код:
I'm learning to live...
|
|
15.04.2012, 15:51 | #4 |
Пользователь
Регистрация: 15.01.2012
Сообщений: 14
|
Цикл про который вы говорите лучше написать в событие таймера? Или же в функции в которой описаны движения шарика?
|
15.04.2012, 16:03 | #5 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
Мне кажется, не принципиально.
Логичнее в движении шарика, имхо.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
15.04.2012, 16:08 | #6 |
Пользователь
Регистрация: 15.01.2012
Сообщений: 14
|
Еще попутный вопрос, я прорисовываю канвы на форме, и изображение моргает. Можно ли как нибудь избавится от марания?
|
15.04.2012, 16:15 | #7 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
Нужна так называемая двойная буферизация.
Не помню, есть ли у формы свойство DoubleBuffered. Если нет, то рисуйте на bitmap, который создадите, а потом копируйте изображение на канву (команда BitBlt). А вариант, что шарик "ударит" в боковую строну блока или в верхнюю? Тогда нужно проверять на пересечение, т.е. делать сравнения со всеми стенками блока.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
Последний раз редактировалось BDA; 15.04.2012 в 16:18. |
15.04.2012, 16:21 | #8 |
Негодник
Форумчанин
Регистрация: 10.11.2009
Сообщений: 880
|
Можно. Для этого нужно использовать фон, размером с шарик, и накладывать фон на отрисованный шарик методом copyrect или bitblt. А потом отрисовывать блоки.
Так же можно рисовать на PaintBox, а не на форме. Тогда можно будет использовать более быстрый scanline. Но подлость состоит в том, что тогда все придётся рисовать в ручную с помощью циклов.
Если помог, проси поставить минус. Будь оригинален!
|
15.04.2012, 16:40 | #9 |
Пользователь
Регистрация: 15.01.2012
Сообщений: 14
|
И опять в мою голову пришел вопрос, извините если надоел, в первом посте, я описал функцию которая меняет координаты шарика, эта функция не относится к классу шарика, как мне ее правильно описать что бы она относилась к классу шарика и в качестве аргументов использовала координаты доски, которые описаны в классе доски.
|
15.04.2012, 16:56 | #10 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Цитата:
Код:
I'm learning to live...
Последний раз редактировалось Stilet; 15.04.2012 в 16:59. |
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Арканоид. Проблема с блоками. | xeoni | Помощь студентам | 1 | 11.05.2011 01:50 |
Проблема с блоками | Vendetta-V | HTML и CSS | 1 | 22.09.2010 20:44 |
сортировка текста блоками | Andruha_An | Microsoft Office Word | 5 | 19.04.2010 20:28 |
Обработка столкновений окружностей. | Вадим Буренков | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 18 | 08.03.2010 13:43 |
Код проверки столкновений не работает. | Манжосов Денис :) | Общие вопросы Delphi | 8 | 02.02.2009 10:31 |