![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 15.01.2012
Сообщений: 14
|
![]()
Здравствуйте, я пишу курсовую темой которой является, разработка игры Арканоид на C++. У меня появилась проблема в обработки столкновений с блоками.
Для создания блоков я создал массив объектов, объекты описаны классом. Код:
для движения шарика использую функцию Код:
как это осуществить? Последний раз редактировалось alonix; 15.04.2012 в 15:55. |
![]() |
![]() |
![]() |
#2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,429
|
![]()
Код не разбирал, но идея такова: "пробегать" циклом по всем блокам, и если расстояние от центра шарика до центра блока (можно подумать и по другому параметру), у которого vis true, меньше какой-то константы, то присвоить false и изменить направление шарика.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() Последний раз редактировалось BDA; 15.04.2012 в 15:39. |
![]() |
![]() |
![]() |
#3 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Код:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 15.01.2012
Сообщений: 14
|
![]()
Цикл про который вы говорите лучше написать в событие таймера? Или же в функции в которой описаны движения шарика?
|
![]() |
![]() |
![]() |
#5 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,429
|
![]()
Мне кажется, не принципиально.
Логичнее в движении шарика, имхо.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 15.01.2012
Сообщений: 14
|
![]()
Еще попутный вопрос, я прорисовываю канвы на форме, и изображение моргает. Можно ли как нибудь избавится от марания?
|
![]() |
![]() |
![]() |
#7 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,429
|
![]()
Нужна так называемая двойная буферизация.
Не помню, есть ли у формы свойство DoubleBuffered. Если нет, то рисуйте на bitmap, который создадите, а потом копируйте изображение на канву (команда BitBlt). А вариант, что шарик "ударит" в боковую строну блока или в верхнюю? Тогда нужно проверять на пересечение, т.е. делать сравнения со всеми стенками блока.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() Последний раз редактировалось BDA; 15.04.2012 в 16:18. |
![]() |
![]() |
![]() |
#8 |
Негодник
Форумчанин
Регистрация: 10.11.2009
Сообщений: 880
|
![]()
Можно. Для этого нужно использовать фон, размером с шарик, и накладывать фон на отрисованный шарик методом copyrect или bitblt. А потом отрисовывать блоки.
Так же можно рисовать на PaintBox, а не на форме. Тогда можно будет использовать более быстрый scanline. Но подлость состоит в том, что тогда все придётся рисовать в ручную с помощью циклов.
Если помог, проси поставить минус. Будь оригинален!
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 15.01.2012
Сообщений: 14
|
![]()
И опять в мою голову пришел вопрос, извините если надоел, в первом посте, я описал функцию которая меняет координаты шарика, эта функция не относится к классу шарика, как мне ее правильно описать что бы она относилась к классу шарика и в качестве аргументов использовала координаты доски, которые описаны в классе доски.
|
![]() |
![]() |
![]() |
#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 |