![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
radikayupov1710 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 2.2.2009 Репутация: нет Всего: нет |
Помогите пожалуйста разобраться с программой. Нужны 100 точек бегающих по экрану. У меня всего бегает только одна точка.
Вот код: #include<graphics.h> #include<stdio.h> #include<stdlib.h> #include<conio.h> #include<dos.h> void main() { clrscr(); int gdriver=DETECT, gmode, errorcode; initgraph(& gdriver, & gmode,"..."); errorcode=graphresult(); if (errorcode!= grOk) { printf("Graphicserror:%s\n", grapherrormsg(errorcode)); printf("Press any key to break:"); getch(); exit(1); } int x=50, y, dx=1, dy=1, x1, x2, y1, y2; x1=getmaxx()/2-300; y1=getmaxy()/2-239; x2=getmaxx()/2+300; y2=getmaxy()/2+239; x=getmaxx()/2; y=getmaxy()/2; randomize; do { for(;;) { if(kbhit()) { switch (getch()) { case 119: if(getch()==115) exit(0); break; case 115: if(getch()==119) exit(0); break; } } if(dx>0) { if(x+dx>=x2) dx=dx*(-1); } else if(x+dx<=x1) dx=dx*(-1); if(dy>0) { if(y+dy>=y2) dy=dy*(-1); } else if(y+dy<=y1) dy=dy*(-1); setcolor(BLACK); rectangle(x1, y1, x2, y2); x+=dx; y+=dy; putpixel(x, y, WHITE); delay(5); putpixel(x, y, BLACK); delay(5); } } while(!kbhit()); closegraph(); } Это сообщение отредактировал(а) radikayupov1710 - 2.2.2009, 19:11 |
|||
|
||||
fiss |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 10.1.2009 Где: nov.ru Репутация: нет Всего: нет |
Оужс. Запихай код в тэг code. Читать неудобно.
Мб я не прав, но думаю что каждую точку надо засовывать в поток (thread), чтобы она не зависела от других. Это сообщение отредактировал(а) fiss - 2.2.2009, 20:11 |
|||
|
||||
pan2004 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 357 Регистрация: 28.7.2007 Репутация: 1 Всего: 9 |
fiss, я очень сильно сомневаюсь, что в Borland C++ 3.1(читай Ms DOS) были потоки. Судя по используемым хидерам и функциям, программа оттуда. Не говоря уже что 100 потоков много даже для современного компа.
А ничего сложного я не вижу - точки надо пробегать в цикле, и менять их координаты, соответственно перерисовывая. Изза того, что движется только одна точка, могу сказать что этого цикла либо нет, либо он неправильно оформлен(программу не смотрел, так как без [code]) |
|||
|
||||
Peter |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 771 Регистрация: 28.7.2003 Где: Ставрополь Репутация: -1 Всего: 1 |
-------------------- всё, что делаете, делайте от души, как для Господа (Послание апостола Павла колоссянам, 3:23). |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |