Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2008, 21:19   #1
Jhon_89
Новичок
Джуниор
 
Регистрация: 25.03.2008
Сообщений: 2
Восклицание Псевдографика на С

Привет всем!!! Дело в том что я пишу игру на С в консоли используя псевдографику....Я рисую с помощью массива...При этом моя игра требует обновления экрана консоли....оно происходит но слишком быстро при этом возникает эффект мерцания, который нужно устранить....Так вот вопрос как мне лучше справиться с этой проблемой??
Jhon_89 вне форума Ответить с цитированием
Старый 25.03.2008, 21:38   #2
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Переключайте видеостраницы - старый проверенный способ.
B_N вне форума Ответить с цитированием
Старый 26.03.2008, 14:23   #3
Jhon_89
Новичок
Джуниор
 
Регистрация: 25.03.2008
Сообщений: 2
По умолчанию

а можно маленько поподреобнее!!!!
Jhon_89 вне форума Ответить с цитированием
Старый 20.03.2011, 00:03   #4
fair7
 
Регистрация: 07.03.2011
Сообщений: 7
По умолчанию

я знаю как переключать станицы, но тот метод, который знаю лишь два цвета можно выбрать (цвет текста и цвет фона)
fair7 вне форума Ответить с цитированием
Старый 03.06.2014, 01:21   #5
fair7
 
Регистрация: 07.03.2011
Сообщений: 7
По умолчанию

Держи пример
Код:
#include <stdio.h>  // D7R printf
#include <conio.h>  // D7R _getch
#include <windows.h>
#define s 254
// DECKPUnTOP KOHCO7U, O5E3ATE7bHO HADO UHUYUA7U3UPOBATb
HANDLE hCon =  GetStdHandle( STD_OUTPUT_HANDLE );
void AltEnter()
{
    keybd_event(VK_MENU,
                0x38,
                0,
                0);
    keybd_event(VK_RETURN,
                0x1c,
                0,
                0);
    keybd_event(VK_RETURN,
                0x1c,
                KEYEVENTF_KEYUP,
                0);
    keybd_event(VK_MENU,
                0x38,
                KEYEVENTF_KEYUP,
                0);
}
void _XY(unsigned short X=0,unsigned short Y=0)// nO3UYUR KyPCOPA, D7R CUMBO7OB
{   COORD coord = { X, Y };
    SetConsoleCursorPosition(hCon, coord);
}
void Blinking(int off=99)// MEPYAHUE y5PATb
{   CONSOLE_CURSOR_INFO cci;
    cci.dwSize=off;
    cci.bVisible=false;
    SetConsoleCursorInfo(hCon,&cci);
}
int main()
{
    AltEnter();
    char fieldYX[49*80];
    for (int i = 0; i < 49*80;fieldYX[i++]=' ');
    fieldYX[49*80-1]=0;
    Blinking();
    int g,yx=24*41;
    do
    {
        _XY();printf(fieldYX);
        g=_getch();
        switch(g)
        {
        case 13:fieldYX[yx]=32;break;
        case 'q':if((yx-80)>=0)fieldYX[yx-=80]='S';
            else fieldYX[yx+=48*80]=s;break;
        case 'a':if((yx+80)<=49*80)fieldYX[yx+=80]='s';
            else fieldYX[yx-=48*80]=s;break;break;
        case 'o':if((yx-1)>=0)if(yx%80!=0)fieldYX[--yx]='O';
            else fieldYX[yx+=79]=s; break;
        case 'p':if((yx+1)<=49*80)if((yx+1)%80!=0)fieldYX[++yx]='o';
            else fieldYX[yx-=79]=s; break;
        }
    }
    while(g!=27);
    return 0;
}
fair7 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц