Форум программистов, компьютерный форум CyberForum.ru

Арканоид - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.93
Chiakiii
0 / 0 / 0
Регистрация: 27.11.2011
Сообщений: 38
12.04.2012, 22:30     Арканоид #1
Собственно, арканоид с помощью graphics.h
Запарился со структурами, шарик вырисовывает, а планку(прямоугольник) нет. Подскажите, в чем неправильно. Раньше прорисовывал, если все в одной структуре было, теперь разделил и не хочет. Нужно ли мне отдельная структура для прямоугольников?
Вложения
Тип файла: rar test2.rar (685.3 Кб, 74 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2012, 22:30     Арканоид
Посмотрите здесь:

Арканоид C++
C++ Арканоид
Вопрос по игре арканоид C++
C++ Арканоид
[C++] Арканоид C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Chiakiii
0 / 0 / 0
Регистрация: 27.11.2011
Сообщений: 38
04.05.2012, 19:51  [ТС]     Арканоид #2
C
1
2
3
4
5
static void DrawBar0(Bar rak)
{
    setcolor(BarColors[rak.color1]);
    setfillstyle(SOLID_FILL,BarColors[rak.color1]);
    bar(int(rak.x),int(rak.y),int(rak.x+50),int(rak.y+30));
Так задана ракетка.

C
1
2
3
setcolor(BallColors[b.color1]);
    setfillstyle(SOLID_FILL,BallColors[b.color1]);
    fillellipse(int(b.x),int(b.y),int(b.r),int(b.r));
Так шарик.

Как сделать так, чтобы они сталкивались?
C
1
2
3
4
5
6
void TryMoveBar(Scene*sc,Ball*b,Bar*rak,double dt)
{
    rak->width=rak->x+50;
    rak->height=rak->y+30;
    if ((b->x + b->r > rak->x) && (b->x - b->r < rak->x))
    b->vx = -b->vx;
Не выходит так.
Chiakiii
0 / 0 / 0
Регистрация: 27.11.2011
Сообщений: 38
06.05.2012, 12:49  [ТС]     Арканоид #3
http://rghost.ru/37937925

Конечная версия. Столкновение шарика с ракеткой здесь -void TryMoveBall(Scene*sc,Ball*b,Bar*rak,double dt)

А сама проверка - последняя строчка if(b->x<rak->x-b->r&&b->x>rak->x-25&&b->x<rak->x+25) y=y*(-1);

Алсо управлять ракеткой на a и d. Нужно нормальное условие для стокновения.
Chiakiii
0 / 0 / 0
Регистрация: 27.11.2011
Сообщений: 38
08.05.2012, 21:09  [ТС]     Арканоид #4
Ну кто-нибудь, помогите мне с условием для столкновения, никак все не получается. Шарик пролетает сквозь ракетку.
HardMorg
2 / 25 / 3
Регистрация: 29.08.2010
Сообщений: 204
08.05.2012, 21:26     Арканоид #5
просто сравнивай координаты шарика и доски, то есть иксовая координата должна лежать строго между,
начальной икс прямой и конечно, а высота то есть игрек совпадать.

или еще можно просто вычислять расстояние между шаром и доской по формуле sqrt((x1-x2)^2 + (y1-y2)^2)

Добавлено через 1 минуту
если интересно могу кинуть свой арканоид
Chiakiii
0 / 0 / 0
Регистрация: 27.11.2011
Сообщений: 38
10.05.2012, 13:18  [ТС]     Арканоид #6
HardMorg, Будь добр.
Yandex
Объявления
10.05.2012, 13:18     Арканоид
Ответ Создать тему
Опции темы

Текущее время: 04:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru