Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2011, 17:38   #1
Walker32
 
Регистрация: 15.05.2011
Сообщений: 7
По умолчанию Проблема со змейкой

Пишу для курсовика змейку в графике, нашел какой то исходник, начал делать, очень много было ненужного хлама, но вот не могу разобраться с самой змеёй, хочу ее увеличить, но не получается и не пойму в чем проблема! Пытался заменить putpixel на fillellipse (конечно же подредктировав значения) но начинается какая то возня по экрану, как будто у змеи кретические дни. Может вы поможете с этим вопросом?
Код:
void gamephysics () 
{ 
static int foodcount = 0;//Keep Count of food 
int futurex, futurey, futurepixel; 
int i; 
char scorestring [100]; 
if (foodcount < 1) //Adds a food if no food is present and upto maximum 500 food 
{ 
int valid = 0; 
int foodx; 
int foody; 
while (!valid) 
{ 
foodx = randomvalue (15,1003); 
foody = randomvalue (15,695); 
if (getpixel (foodx,foody)!= 2) 
{ 
putpixel (foodx,foody,2); 
foodcount++; 
valid = 1; 
} 

} 
} 

//Boundary Collision Check - 

if (Snake.head_x <= 10 || Snake.head_x >= 1008 || Snake.head_y <= 10 || Snake.head_y >= 700) 
{ 
outtextxy (499,345, "Game Over"); 
delay (3000); 
exit (1); 
} 

//Get future value of head in int variable futurex and futurey and calculate the logic 

futurex = Snake.head_x; 
futurey = Snake.head_y; 
if (Snake.head_dir == LEFT) 
{ 
futurex --; 
} 
if (Snake.head_dir == RIGHT) 
{ 
futurex ++; 
} 
if (Snake.head_dir == UP) 
{ 
futurey --; 
} 
if (Snake.head_dir == DOWN) 
{ 
futurey ++; 
} 
futurepixel = getpixel(futurex,futurey); 

if (futurepixel == 2)//Food Eaten 
{ 
foodcount --; //Reduce count 
score++; //Increase Score 
setcolor (0);//Rewrite Score 
setfillstyle (0,0); 
bar (11,701,1007, 735); 
setcolor (4); 
sprintf (scorestring, "Score : %d", score); 
outtextxy (20,710, scorestring); 
//Increase the size of snake by 100 pixel you can put as much as you want 
if (Snake.tail_dir == UP) 
{ 
for (i = 0; i<16;i++) putpixel (Snake.tail_x,Snake.tail_y+i,15); 
Snake.tail_y +=15; 
} 
if (Snake.tail_dir == DOWN) 
{ 
for (i = 0; i<16;i++) putpixel (Snake.tail_x,Snake.tail_y-i,15); 
Snake.tail_y -=15; 
} 
if (Snake.tail_dir == LEFT) 
{ 
for (i = 0; i<16;i++) 
putpixel (Snake.tail_x+i,Snake.tail_y,15); 
Snake.tail_x +=15; 
printf ("LEFT"); 
} 
if (Snake.tail_dir == RIGHT) 
{ 
for (i = 0; i<16;i++) 
putpixel (Snake.tail_x-i,Snake.tail_y,15); 
Snake.tail_x -=15; 
printf ("RIGHT"); 
} 

} 
if (futurepixel == 15) 
{ 
outtextxy (499,345, "Game Over"); 
delay (3000); 
exit (1); 
} 

}
Walker32 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двумерный массив вывод элементов змейкой egor67 Паскаль, Turbo Pascal, PascalABC.NET 4 08.04.2011 17:15
Заполнить массив змейкой NeGaTiVe Помощь студентам 9 28.03.2011 17:08
Сортировка матрицы змейкой (Delphi) 01010101irk Помощь студентам 1 16.06.2009 10:29
Вывод символов в StringGrid спиралью и змейкой (Delphi) ekzobyte Помощь студентам 1 02.04.2009 19:34
помогите с диагональной змейкой Слон Паскаль, Turbo Pascal, PascalABC.NET 2 07.06.2008 11:19