Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Pokeb


Автор: Zello 23.11.2007, 16:13
Задача заключается в том, чтобы с помощью функци pokeb() вывести на экран символы с различными цветами и бекграундами.
Вот исходный код: 
Код

#include <io.h>
#include <iostream.h>
#include <conio.h>
#include <fcntl.h>
#include <sys\stat.h>
#include <alloc.h>
#include <dos.h>
#include <STDLIB.H>
#include <math.h>
#include <STRING.H>
#include <COMPLEX.H>

void main() {
clrscr();
char *s="s";
int simvol=15;
int cv=0, bg=0;
pokeb(0xB800, 0, s[0]);
cout<<endl;
getch();
}


При четном сдвиге выводится "s", при нечетном - закрашенная область.

Что нужно сделать, чтобы символ менял цвета?

Автор: mes 23.11.2007, 19:01
Цитата(Zello @  23.11.2007,  16:13 Найти цитируемый пост)
Что нужно сделать, чтобы символ менял цвета?

Изменять атрибуты  (фон, цвет и др.) символа - они хранятся по нечетному смешению сразу за символом.
На основе ф-ции pokeb будет примерно следуюий код:

Код

void DrawSymbol(int x, int y, char symbol, char atribut)
{
    int  offset  = y*(ScreenWidth * BytePerSymbol )+x;
    pokeb(0xB800, offset,symbol);
    pokeb(0xB800,offset+1,atributl);
};

где
ScreenWidth - ширина экрана в символах
BytePerSymbol  - сколько байт отводится на один символ ..( в твоем случае 2)


Автор: Zello 23.11.2007, 22:23
Огромное спасибо, теперь стало понятно что к чему.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)