Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на языке Pascal

Выпуск № 230
от 12.01.2004, 18:30

Администратор:
Имя: Sensey
URL: Информационный ресурс
ICQ: 105679124
Украина, Харьков
О рассылке:
Задано вопросов: 398
Отправлено ответов: 1411
Активность: 354.5 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Boriss
Статус: Профессиональный
Общий рейтинг: 148
URL: Программирование на Паскале
[Подробней >>]
Strory
Статус: Начальный
Общий рейтинг: 138.88
[Подробней >>]
Vitally
Статус: Доверительный
Общий рейтинг: 159.52
[Подробней >>]
 
sir henry
Статус: Профессиональный
Общий рейтинг: 160.25
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 398. Сновым годом!...Приходят новые вопросы. Пишем модуль и программу(всё в приложении), в результате зап... (ответов: 4)

Вопросов: 1, ответов: 4


 Вопрос № 398

Сновым годом!...Приходят новые вопросы. Пишем модуль и программу(всё в приложении), в результате запуска получаем спрайт заданных размеров, но с изображением, не соответствующим желаемому(полную неразбериху), посмотрите, в чём проблема. Заранее благодарен, Pavel.


Приложение:


Вопрос отправлен: 09.01.2004, 18:25
Отправитель: pavel

[Следующий вопрос >>] [Список вопросов]

Отвечает Boriss

Приветствую Вас, pavel!
Две проблемы: цветовые палитры в DOS и Windows различаются, так что надо не Seek(f,1078), пропуская палитру, а загружать ее. В ДОС один цвет 3 байта, а в Виндах - 4. Так что нужно переписывание в массив другой.
Смещение 1078 получается из-за того, что 14 байт (заголовок файла) + 40 (заголовок изображния, 8 бит на пиксел даст число цветов 0, что значит, по умолчанию 256 цветовая палитра) + 256*4 (палитра)
2) изображение в BMP идет снизу вверх.
Пример пока сделать некогда, если проблемы останутся, напишите bsurin@mail.ru

Ответ отправлен: 12.01.2004, 10:55
Отправитель: Boriss


Отвечает Strory

Доброе время суток, pavel!
Сударь, я удивляюсь, как Вы вообще получили хотя-бы "полную неразбериху"!!! Я даже не стал разбираться с алгоритмом, потому что Вы объявляете процедуру:
procedure ReadBMP(sprite: SpriteType; BMPFileName: string);
а потом её используете следующим (непонятным!!!) образом:
procedure CreateSprite(sprite: SpriteType; BMPFileName: string);
begin
GetMem(sprite.image, sizeof(SpriteArrayType));
GetMem(sprite.back, sizeof(SpriteArrayType));
ReadBMP(sprite, BMPFileName, width, heigth); {!?!?!?}
end;
ПОЧЕМУ? Вы же сами описали её с двумя параметрами, а потом добавляете ещё ширину и высоту (?). В таком случае хотелось бы узнать на чём пишите? Я проверял на Borland Pascal 7. Возможно уже изобрели что-то новенькое :)


Ответ отправлен: 10.01.2004, 13:33
Отправитель: Strory


Отвечает Vitally

Здравствуй, pavel!
Ошибок много, но главная в том, что твой demo всегда пустой! Если ты хочешь, чтобы в нем сохранялись значения, делать нуно так:
procedure CreateSprite(VAR sprite: SpriteType; BMPFileName: string);
Тем не менее, с твоим screen'ом у меня все равно ничего не вышло. Я использовал стандартный Graph с PutPixel.
Чтобы делать такие маленькие спрайты есть способ проще: создаешь файл, записываешь в него буковки (например) по принципу иконки... где каждая буковка обозначает цвет. Вот и все.
Удачи.

Ответ отправлен: 11.01.2004, 16:37
Отправитель: Vitally


Отвечает sir henry

Приветствую Вас, pavel!
Вот Вам статейка по этому поводу:
http://pascal.sources.ru/articles/099.htm

Ответ отправлен: 12.01.2004, 04:11
Отправитель: sir henry



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (24)
C / C++ (18)
Perl (4)
Builder / Delphi (19)
Pascal (20)
Basic / VBA (4)
Java / JavaScript (5)
PHP (12)
Криптография (6)
WinAPI (12)
Пользователю
Windows 95/98/Me (40)
Windows NT/2000/XP (57)
"Железо" (28)
Поиск информации (20)
Администратору
Windows NT/2000/XP (28)
Linux / Unix (10)
Юристу
Гражданское право (13)
Семейное право (9)
Трудовое право (10)
КоАП (9)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2003 Россия, Москва. Авторское право: Калашников О.А.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное