Всем привет
Вот не понял, что я тут назимичел, вероятно что- нибудь не так, потому что при вводе с клавиатуры прога зависает:
Вот как я получаю координаты шара с клавиатуры (Enter):
Из "Var.h":
//Основной массив игры
int g[14][14];
...
int xCl,yCl=1;//Положение курсора на игровом поле
bool razreshenie=false;//Разрешение в игре перемещать курсор
bool shphere_is;//Шар взят
|
Из "Message.h":
void OnTimer(HWND hwnd)
{
if(keys[VK_ESCAPE])
SendMessage(hwnd, WM_CLOSE,0,0);
SendMessage(hwnd, WM_PAINT, 0, 0);
int xCPos,yCPos;//Объявляем переменные положения курсора на момент начала игры
xCPos=xCl;
yCPos=yCl;
/*обработка анимации*/
if (keys[VK_UP])
{
...
if (mode==2&&razreshenie==true)//Для игры
{
yCl++;
Cursor (xCl,yCl);
}
}
if (keys[VK_DOWN])
{
...
if (mode==2&&razreshenie==true)//Для игры
{
yCl--;
Cursor (xCl,yCl);
}
}
if (keys[VK_RIGHT])
{
...
if (mode==2&&razreshenie==true)//Только для игры
{
xCl++;
Cursor (xCl,yCl);
}
}
if (keys[VK_LEFT])
{
...
if (mode==2&&razreshenie==true)//Только для игры
{
xCl--;
Cursor (xCl,yCl);
}
}
...
if(yCl>14)yCl=14;
if(yCl<1)yCl=1;
if(xCl>14)xCl=14;
if(xCl<1)xCl=1;
...
//Обработка нажатия на кнопки
...
if (keys[VK_RETURN]&&mode==2&&razreshenie==true)
{
if (g[xCl][yCl]!=0)
{
shphere_is=true;
}
}
|
Из "Graph.h":
void HodIgroca ()
{
...
//Получение места, откуда взят шар
razreshenie=true;//Разрешаем перемещать курсор
...
shphere_is=false;
while (shphere_is!=true )//Проверка, взят ли шар или там ни чего нет
{
}
|
В последнем цикле в Graph.h содержимое отстутствует: цикл будет жать, пока shphere_is станет равным true, то есть пока не будет взят шар. Если шар взят то программа идет дальше, однако до выбора шара дело не доходит: программа зависает еще на этапе отрисовки окна (видет только фрейм окна на сером фоне). Debuggerom установленно, что этот цикл выполняется до бесконечности.