Вопрос таков: у меня в игре графические ресурсы в бмп формате, как мне сделать их проверку, т.е чтобы никто их не перерисовал... я знаю как сделать если в другом редакторе перерисовывали, или изменился размер... а если представить что размер остался такой же, а заголовок остался идентичным?
Приветствую Вас, Ландграф Павел! Попробуй ввести контрольну сумму. Например в каждом килобайте считать сумму красного. И записать это все в какой то файл со страшным названием типа game.sys :) предварительно закодировав. Ответ отправлен: 08.06.2003, 15:18 Отправитель: X-RayMan Отвечает Bob Johnson
Здравствуйте, Ландграф Павел! Считай их контрольную сумму в программе и сравнивай с оригинальной. Но если надо - сломают все равно.
* EMan1.1: ---===*** Eternal power ***===---
Ответ отправлен: 08.06.2003, 17:34 Отправитель: Bob Johnson Отвечает Stein
Добрый день, Ландграф Павел! Можно сделать масив из значений цветов каких-либо пикселей(к примеру, по углам и в середине, но можно и другие, это уж как захочешь) и проверять их. Ответ отправлен: 08.06.2003, 14:05 Отправитель: Stein Отвечает Vdr
Здравствуйте, Ландграф Павел! А как насчет того, что считать контрольную сумму? Удачи! Ответ отправлен: 09.06.2003, 08:55 Отправитель: Vdr Отвечает --- Нет данных ---
Приветствую Вас, Ландграф Павел! Можно хранить эти графические рессурсы зашифрованными, а можно проверять контрольную сумму перед их использованием.
Ответ отправлен: 08.06.2003, 12:15 Отправитель: --- Нет данных ---
Вопрос № 726
Здравствуйте. У меня немного странный вопрос: Можно ли во время выполнения получить имя функции (в виде строки)в которой сейчас происходит выполнение? procedure TfrmMain.ButtonRedClick(Sender: TObject); begin s:=(some function); //as result s='ButtonRedClick' end; Спасибо. Может быть нужна подпрограмма на ассемблере? Или это в принципе невозможно?
Доброе время суток, Serg! Я честно говорю не знаю, но как альтернативу могу предложить в начале каждой процедуры вручную присваивать переменной название соответствующей процедуры... Ответ отправлен: 09.06.2003, 11:36 Отправитель: --- Нет данных --- Отвечает Zensor
Добрый день, Serg! Можно, но во время откладки программы на стадии разработки. Ответ отправлен: 09.06.2003, 12:31 Отправитель: Zensor Отвечает Stein
Доброе время суток, Serg! Эксперт Vdr прав, советую к ассемблерщикам обратиться... Ответ отправлен: 09.06.2003, 12:30 Отправитель: Stein Отвечает Vdr
Приветствую Вас, Serg! По идее, имя функции - это нечто для твоего удобства... Прикомпиляции оно теряется, заменяясь на адреса...имхо. Удачи! Ответ отправлен: 09.06.2003, 12:26 Отправитель: Vdr Отвечает Bob Johnson
Добрый день, Serg! Во время выполнения программы не остается никаких имен функций, переменных, классов и т.д. Все заменяется адресами в памяти. Но, есть и исключение: если при создании программы была включена опция RTTI (Run-Time Type Information), то остаются имена классов. Это реализуется за счет того, что каждый экземпляр класса имеет некоторое свойство, которое содержит текстовое имя его типа. Применяется это для проверки, возможен ли dynamic_cast, (преобразование типов классов от одного к другому). В Delphi это реализуется операторами is и as.
* EMan1.1: ---===*** Eternal power ***===---
Ответ отправлен: 09.06.2003, 17:26 Отправитель: Bob Johnson
Вопрос № 727
Здравствуйте уважаемые эксперты! Подскажите пожалуйста, как можно скопировать из программы файлы из каталога вместе со всеми подкаталогами. Язык программирования - С++Builder 5.0 Если у кого-нибудь есть примеры решения подобной задачи, вышлите пожалуйста на e-mail
Приветствую Вас, Alexandr! есть там команда какаято, я непомню, но можно попробовать сделать BAT фаял и запустить его незаметно для порльзователя. (см. приложение)
Приложение: Ответ отправлен: 09.06.2003, 18:31 Отправитель: Zensor Отвечает Bob Johnson
Доброе время суток, Alexandr! Для этого можно: 1. Воспользоваться внешней программой, которая это може (например, xcopy). При этом ты запустишь ее из билдера с нужными параметрами. 2. Писать самому процедуру, которая копирует все файлы из одного каталога в другой. Для этого тебе надо будет выполнить поиск файлов и, если найдешь каталог, то вызываешь эту же процедуру копирования (т.е. рекурсивно) с именем уже нового каталого, а если найдешь файл - то просто копируешь его.
* EMan1.1: ---===*** Eternal power ***===---
Ответ отправлен: 10.06.2003, 01:17 Отправитель: Bob Johnson
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.