1. Пользуйтесь тегами кода. - [code] ... [/code] 2. Точно указывайте язык, название и версию компилятора (интерпретатора). 3. Название темы должно быть информативным. В описании темы указываем язык!!!
Есть желание написать программу, реализующую действия ракеты и её цели. Задаются координаты цели для ракеты, стрелками на клавиатуре можно менять положение цели в 2-х мерном пространстве, ракета должна отслеживать цель. Все это должно производиться "параллельно"..
Код исходный большой(т.е там файлов листинга просто много). Я знаю, что один вольво отвечает на мои безумные посты, на него и надежда вся. В общем, в коде я оставил комментарии, где происходит "неконтролируемое", они в 2х файлах main и realiz.cpp. Код в архиве...
switch (choise) { case 'n':// если ответ - n - выходим из программы. std::cout << "Exiting.."; exit(20); case 'y': Target target(sx, sy);// создается объект класса Target p.tarp = ⌖//полю tarp ,структуры содержащей указатели на классы Rocket и Target, //присваевается адрес объекта target rocket.LockTarget(target.GetXCoord(), target.GetYCoord());//позиционируем координаты цели myEvent = CreateEvent(NULL, FALSE, FALSE, NULL);//инициализация события для функции изменения //координаты цели SetEvent(myEvent);//сброс , что бы не тормозить потоки. MyEvent2 = CreateEvent(NULL, FALSE, FALSE, NULL);//для изменения координаты ракеты SetEvent(MyEvent2); while (target.TStatus)//цикл пока жива цель { if (kbhit() != 0)//если была нажата клавища { key = getch();//считать её в переменную key TH2=CreateThread(NULL,0, (LPTHREAD_START_ROUTINE) ChangeCoordTarget, &target, 0, &ID);//поток обрабатывает нажатие клавиши и перемешает цель } TH=CreateThread(NULL,0, (LPTHREAD_START_ROUTINE) MoveToTarget, &p, 0, &ID);//ракета постоянно контролирует положение цели и стремиться к ней. } }