Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Звездные войны / 8 сообщений из 8, страница 1 из 1
09.06.2005, 15:32
    #33109850
Stalcer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Звездные войны
Подскажите как с помощью ф-ций printf и sleep сделать "звездопад" (перемещается некоторое кол-во * в разных фазах). Не знаю как реализовать случайные временные фазы падения *. Пример для одной * :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
int a =  79 ;
int b = rand()% 45 ;

void Meteo()
{	
	if(a== 0 ){
		a =  79 ;
		b = rand()% 45 ;
	}		
	SetPos(a,b);
	printf("*");
	Sleep( 10 );
	SetPos(a,b);
	printf(" ");
	a--;
	return a;
}

void main()
{
       Meteo();
}
...
Рейтинг: 0 / 0
09.06.2005, 15:36
    #33109863
Stalcer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Звездные войны
SetPos(x, y) - ставит символ в координату (x, y)
Sleep(x) - замедляет вывод (x - мс)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
#include <iostream.h>
#include <stdio.h>
#include <windows.h>
#include <shlwapi.h>
#include <string.h>

int X= 0 ;
int Y= 0 ;
int RectX= 0 ;
int RectY= 0 ;
int RectH= 0 ;
int RectL= 0 ;
int DF= 0 ;

HANDLE GH(){
	HANDLE a=GetStdHandle(STD_OUTPUT_HANDLE);
	if(a==INVALID_HANDLE_VALUE){
		return  0 ;
	}
	return a;
}

int SetPos(int x=X,int y=Y,char ar[]="\0"){
	cout<<flush;
	COORD coord;
	coord.X=x;
	coord.Y=y;
	X=x;
	Y=y;
	int res=SetConsoleCursorPosition(GH(),coord);
	cout<<ar;
	return res;
}
...
Рейтинг: 0 / 0
09.06.2005, 16:43
    #33110110
Stalcer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Звездные войны
Помойму изменение слипа в этом случае не поможет...
...
Рейтинг: 0 / 0
09.06.2005, 18:59
    #33110479
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Звездные войны
printf работает с консолью как с потоком, в режиме телетайпа ( с прокруткой).
Для того, что ты хочешь, надо использовать либо спец. функции вывода на консоль от DOS-а, либо функции работы с консолью в WIN32.
...
Рейтинг: 0 / 0
09.06.2005, 19:01
    #33110482
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Звездные войны
Потоковый вывод C++ также не поможет. Он тоже потоковый, как и printf.
...
Рейтинг: 0 / 0
10.06.2005, 12:23
    #33111571
gardenman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Звездные войны
Изучайте эскейп-последовательности...
для vt100 вполне все прокатит и printf-ом :))
...
Рейтинг: 0 / 0
10.06.2005, 17:11
    #33112487
Stalcer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Звездные войны
Тоесть получается можно сделать только параллельное перемещение звездочек в консоли, я правильно понял? Не правильно, что нужно использовать (желательно пример в коде :))?
...
Рейтинг: 0 / 0
10.06.2005, 17:13
    #33112491
Stalcer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Звездные войны
MasterZivprintf работает с консолью как с потоком, в режиме телетайпа ( с прокруткой).
Для того, что ты хочешь, надо использовать либо спец. функции вывода на консоль от DOS-а, либо функции работы с консолью в WIN32.
Вы бы не могли показать, как это должно выглядеть?
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Звездные войны / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]