Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Pokeb, Адресация видеобуфера. 
:(
    Опции темы
Zello
Дата 23.11.2007, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 22.11.2007

Репутация: нет
Всего: нет



Задача заключается в том, чтобы с помощью функци 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", при нечетном - закрашенная область.

Что нужно сделать, чтобы символ менял цвета?
PM MAIL   Вверх
mes
Дата 23.11.2007, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(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)




--------------------
PM MAIL WWW   Вверх
Zello
Дата 23.11.2007, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 22.11.2007

Репутация: нет
Всего: нет



Огромное спасибо, теперь стало понятно что к чему.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0413 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.