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

Поведение змейки - C++

Восстановить пароль Регистрация
 
BigED
0 / 0 / 0
Регистрация: 14.12.2010
Сообщений: 26
30.11.2011, 21:37     Поведение змейки #1
Здравствуйте, есть код, игра змейка, все никак не получается заставить поворачивать змейку как надо, в приведенном кусочке кода змейка не гнется - поворачивает как палка причем вокруг самой первой головы. Пробовал создавать массив с координатами х и у и в нем смещать по таймеру, получилось еще хуже, прошу помощи в задании правил поведения змейки (все в visual си++)
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
   hdc = BeginPaint(hWnd, &ps);
          if(f==-1)
          {     
               x=rand()%sx;   //задем координаты еды для змейки
               y=rand()%sy;
               f=-2; 
          }
          xx=(sx/2)-10+a;
          yy=(sy/2)-10+b;
          e=x+10;
          g=y+10;
          SelectObject(hdc,hbrush);
          for(i=0;i<dlinna;i++) /*тут и рисуем круги-части тела змейки в зависимости от начального направления f (0-лево, 1-право, 2-вверх, 3-вниз, изначально -1 и -2 - змейка стоит) */
          {
              int smeshenie=20*i;
              if(i==0) Ellipse(hdc,xx,yy,(sx/2)+10+a,(sy/2)+10+b); 
              if(f==0) Ellipse(hdc,xx+smeshenie,yy,(sx/2)+10+a+smeshenie,(sy/2)+10+b);
              if(f==1) Ellipse(hdc,xx-smeshenie,yy,(sx/2)+10+a-smeshenie,(sy/2)+10+b);
              if(f==2) Ellipse(hdc,xx,yy-smeshenie,(sx/2)+10+a,(sy/2)+10+b-smeshenie);
              if(f==3) Ellipse(hdc,xx,yy+smeshenie,(sx/2)+10+a,(sy/2)+10+b+smeshenie);
          }
         
          SelectObject(hdc,brush1);
          Ellipse(hdc,x,y,e,g);
          if (xx>=x-10 && xx<=x+10 && yy>=y-10 && yy<=y+10)  /*проверяем сьедание, делаем новую еду, увеличиваем длинну змейки*/ 
          {
               x=rand()%sx;
               y=rand()%sy;
                dlinna++; 
          }
          EndPaint(hWnd, &ps);
          break;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2011, 21:37     Поведение змейки
Посмотрите здесь:

C++ Timer начало змейки
исходник змейки под Visual Studio C++
Странное поведение new C++
Движение змейки C++
C++ Заполнение змейки по ВЕРТИКАЛИ
Оцените код "Змейки" C++
C++ Перемещение змейки
Осуществить движение змейки без задержки на ожидания ввода C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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