![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
_JunioR_ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 10.5.2007 Репутация: нет Всего: нет |
Вот такая тема
Моделирование полета стрелы в графическом режиме... нужно что бы с одной точки (0,400) выберался угол полёта и при нажатии клавишы пробел она летит..но сколько раз не пробова она либо не летит либо прога зацыклюеться... Вот то что есть: #include <graphics.h> #include <conio.h> #include <dos.h> #include <iostream.h> #include <math.h> void Figure (int x,int y,int color) { setfillstyle (SOLID_FILL,BLACK); bar(0,0,639,479); setcolor (color); line(x,y,x+50,y); line(x+50,y,x+20,y+10); line(x+50,y,x+20,y-10); line (0,400,639,400); line (639,400,620,390); line (639,400,620,410); line (0,1,0,400); line (0,0,10,15); } void main() { int d=VGA,m=VGAHI; int x,y,dx,v0,a0,max_x,max_y,key,g=9.81,tt; cout<<"Vedit pocchatkovu svidkist m/s"<<endl; cin>>v0; cout<<"Vedit ugol viletu (gradusi)"<<endl; cin>>a0; cout<<"Ugol Naklona="<<a0/(180/3.14)<<endl; cout<<"Chas polyotu="<<2*v0*sin(a0/(180/3.14))/g<<endl; initgraph( &d,&m,"D:\\BC\\BGI"); x=0;y=240; dx=1; while (x+40<640) { Figure (x,y, WHITE); key = getch(); if (key == 27) break; Figure (x,y,WHITE); switch (key){ case 75: x--;break; case 77: x++;break; case 72: y --;break; case 80: y++; } if(kbhit()) if(getch()==27)break; Figure(x,y,WHITE); delay(10); Figure(x,y,WHITE); if (x+20 >=639) dx=-1; if (x<=0) dx=1; x+=dx; } closegraph(); } Жду помощи!!! |
|||
|
||||
Promitheus |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 28.3.2007 Репутация: 1 Всего: 1 |
На мой взгляд в этом цикле дело. Он забирает управление и не даёт отлавливать getch(), а x (читать икс) ты никак кроме как при отхвате кода клавиши не меняешь, тем более как то не факт что будешь приходит в case 77: x++;break;, если case 75: x--;break; будет чаще выполнятся, что икс всегда будет маленьким. Потом ты в задаче написал мол жмём пробел и полетели, а по ходу программы ты везде отлавливаешь коды нажатых клавишь... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |