Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
48 / 48 / 10
Регистрация: 12.01.2010
Сообщений: 183
1

2d

06.05.2010, 23:03. Показов 2434. Ответов 28
Метки нет (Все метки)

Знаю что эта тема уже обсуждалась не раз но всеже напишу:
Посоветуйте что-нибудь для роботы с 2d графикой в BCB 6,ну там openGL, DirectX или вопще использовать стандартные компоненты и классы, и какието книги по им.
Просто даже не знаю с чего начать и куда копать
0
Покинул форум
3183 / 1362 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
07.05.2010, 09:38 2
Я ипользую только стандартные компоненты. Никаких OpenGL и DirectDraw.
Вот что на данный момент у меня получилось:
1
Миниатюры
2d  
48 / 48 / 10
Регистрация: 12.01.2010
Сообщений: 183
07.05.2010, 11:24  [ТС] 3
а где ты храниш картинки разных размеров?
я то думаю хранить их возле исполняемого файла и потом загружать в битмап не есть хорошо, но других способов я пока не нашол , что-то можэш подказать?
0
Покинул форум
3183 / 1362 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
07.05.2010, 11:40 4
Все картинки у меня 1 размера (60*80). Храню я их в возле exe-файла и это не "не есть хорошо". Зачем их хранить в архивах или в самом иполняемом файле. Это плохо и не удобно.
1
Программист TH
290 / 145 / 12
Регистрация: 06.01.2009
Сообщений: 537
07.05.2010, 13:16 5
Хранят в Dll,RES, а также для особокрутых парней, которые ничего не знают но хотят спрограммировать игру есть способ для тупых: кранение в TImageList ))
1
Покинул форум
3183 / 1362 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
07.05.2010, 13:20 6

Не по теме:

DanUnited, зачем так грубо. Не нужно.


Лично я не вижу смысла хранить изображение в архивах или dll-ках - это просто пустая трата времени. Хранить в файлах самый, на мой взляд, лучший способ.
1
5 / 5 / 0
Регистрация: 31.03.2010
Сообщений: 71
08.05.2010, 18:06 7
2Ni'Tan Скинь игру))
1
Покинул форум
3183 / 1362 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
08.05.2010, 18:13 8
Я бы скинул, но:
  1. Зачем мне это делать?
  2. Даже если я скину, вы все равно ничего не поймете
  3. Зачем она вам?
  4. Вам нужны исходнкик или откомпилированный вариант тоже пойдет?
1
5 / 5 / 0
Регистрация: 31.03.2010
Сообщений: 71
08.05.2010, 18:17 9
Интересно посмотреть что у вас получилось,откомпилированный вариант подойдет...
1
Покинул форум
3183 / 1362 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
08.05.2010, 18:20 10
Хорошо. Только подготовлю его. Возможно завтра выложу.
1
Эксперт С++
3942 / 1797 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
08.05.2010, 18:58 11
Цитата Сообщение от Ni'Tan Посмотреть сообщение
Лично я не вижу смысла хранить изображение в архивах или dll-ках - это просто пустая трата времени. Хранить в файлах самый, на мой взляд, лучший способ.
Лично для себя я сделал вывод, что изображения лучше всё же прятать от пользователей.
Создаёте вы приложение ... рядом создаёте папку с названием, допустим, Img, туда закидываете изображения. Вроде бы всё отлично! Но приложение попадает в руки, у которых некорректно установлен hands_driver.exe.
Такие руки сразу лезут что-то изменить! Вы написали, что все картинки у вас были фиксированного размера (60х80). Пользователю захотелось сделать свою "текстуру". Он создал новый рисунок ... и прогадал на пару пикселей. В приложении (с учётом авторазмера и без чрезмерных проверок) начнутся сдвиги графики, наложение одного изображения, на другое. Потом пользователю что-то не понравится и он случайно удалит одно из изображений. Что тогда? Приложение работало-работало, потом какая-то функция обратилась к удалённому изображению и умерло в страшных муках.

Как только я чуть-чуть освоился в VCL - сразу решил использовать для этих целей DLL.
Возни с ними абсолютно никакой. Для создания необходимо только добавить изображения к проекту и, если нужно, подкорректировать их номер в сборке.
При запуске приложения проверить существование библиотеки - уже легче, чем проверить все изображения.
Изменения пользователь с кривыми руками не сделает! Ибо "сложно"!
И при такой методике легче сделать приложение-мультискин ... пользователям будет легче делится одной библиотекой-темой. Ну и конечно, использование выдранного ресурса ничуть не сложнее, чем загрузка обычного файла.

Вот такая вот у меня точка зрения на эти вещи.
Интересно послушать вашу, почему всё же такая антипатия к закрытым ресурсам?
1
Покинул форум
3183 / 1362 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
08.05.2010, 19:30 12
Я не знаю, с dll особо не работал. Но как понимаю, мы засовываем все текстуры в один dll-файл. Затем из него подгружаем в сам проект и нет необходимости устанавливать пользователю hands_driver.exe. Но!
Как быть с редактированием этих текстур? Их каждый раз нужно доставать из dll-ки, изменять и засовывать обратно?!
Если так, то для меня такой подход - плохой. Когда ты видишь все текстуры, можешь их спокойно сравнить, чуть-чуть подредактировать, проверить и по кругу. Хотя, dll можно подключить и под конец работы, когда закончена работа над текстурами.
На счет юных модеров (не модераторов, а людей занимающихся модингом):
Меня то, что текстуры находятся в каком-то архиве или dll-ке никогда не останавливало, не останавливает и останавливать не будет!!!
То, что пользователь пытается изменить что-то в моей игре (программе, продукте) не мое дело, если он, конечно, не делает это при помощи утилит, написанных мною для модинга моей же игры. Знающий человек заметит, что все текстуры одного размера и сделает на всякий случай копии изменяемых файлов, как когда-то делал я. Не знающий...... На ошибках учатся. Поэтому для меня работать с файлами гораздо легче и удобнее. Однажды был опыт с ресурсом и он мне как-то не очень понравился.
Хотя, опять же, я не знаю, насколько удобно работать с dll-ками....

Добавлено через 1 минуту
Цитата Сообщение от MiCr0s0fT Посмотреть сообщение
Интересно послушать вашу, почему всё же такая антипатия к закрытым ресурсам?
Зачем что-то скрывать??? Всегда бесило это в других играх!
1
Эксперт С++
3942 / 1797 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
08.05.2010, 19:46 13
Цитата Сообщение от Ni'Tan Посмотреть сообщение
Знающий человек заметит, что все текстуры одного размера и сделает на всякий случай копии изменяемых файлов, как когда-то делал я.
Вот именно! Знающий человек! Если бы все были "знающими", тогда не пришлось бы придумывать никаких средств защиты, дополнительных проверок...
Но нужно же рассчитывать на тех, для кого компьютер и печатная машинка - похожие вещи.

Цитата Сообщение от Ni'Tan Посмотреть сообщение
Зачем что-то скрывать??? Всегда бесило это в других играх!
Ну тут поспорить не с чем! В закрытое всегда хочется влезть - это прямо инстинкт.

Цитата Сообщение от Ni'Tan Посмотреть сообщение
Как быть с редактированием этих текстур? Их каждый раз нужно доставать из dll-ки, изменять и засовывать обратно?!
Не нужно доставать. Необходимо только пересобрать DLL (то есть, банально нажать Run)

Меня неоднократно просили объяснить как засунуть изображение в DLL. Наверное нужно будет создать отдельную темку, в которой осветить этот вопрос.
1
Покинул форум
3183 / 1362 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
08.05.2010, 20:06 14
Не нужно доставать. Необходимо только пересобрать DLL (то есть, банально нажать Run)
Вот именно! Пересобрать весь dll. Когда, если текстуры в файлах, их можно просто перерисовать по отдельности.
Вот именно! Знающий человек! Если бы все были "знающими", тогда не пришлось бы придумывать никаких средств защиты, дополнительных проверок...
Но нужно же рассчитывать на тех, для кого компьютер и печатная машинка - похожие вещи.
Незнающий пускай учится или не лезет туда, куда не надо.
1
Эксперт С++
3942 / 1797 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
08.05.2010, 20:23 15
Цитата Сообщение от Ni'Tan Посмотреть сообщение
Вот именно! Пересобрать весь dll. Когда, если текстуры в файлах, их можно просто перерисовать по отдельности.
Если интересно заменять по одному - подойдёт любой редактор ресурсов (к примеру, Restorator 2007). Открыли, перетянули, закрыли.

Цитата Сообщение от Ni'Tan Посмотреть сообщение
Незнающий пускай учится или не лезет туда, куда не надо.
Каждому лично этого не скажешь.
1
Покинул форум
3183 / 1362 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
08.05.2010, 20:41 16
Выкладываю, как и просили:
1. Сначала нужно нажать кнопку "Создать поле", а потом приступать к работе.
2. Здесь можно поставить только 3 вида обьектов: Дерево, NPC и Факел, показывающий работу анимации.
3. После того как закончите с созданием карты, нажмите кнопку "Запустить".
4. Все, не предназначенное для чужих глаз, я скрыл.
5. Картинка рисуется только стандартными средствами: Graphics::TBitmap.
6. Моя гордость: Наложение обьекта на обьект (поставтьте факел так, чтобы его закрывала часть дерева) созданно мною при помощи стандартных компонентов и функций. (Хотелось бы выслушать оценку).
7. Убрал управляемого ГГ - это еще нужно доработать.
8. Все текстуру рядом с exe-шником. Можете их перерисовать!!!! И даже изменить размер, только эфект наложения перестанет работать.
2
Вложения
Тип файла: rar IzLib (fo_forum).rar (263.2 Кб, 89 просмотров)
Тутошний я
2059 / 1127 / 208
Регистрация: 03.11.2009
Сообщений: 3,937
Записей в блоге: 2
08.05.2010, 23:14 17
Цитата Сообщение от MiCr0s0fT Посмотреть сообщение
Сообщение от Ni'Tan
Незнающий пускай учится или не лезет туда, куда не надо.
Каждому лично этого не скажешь.
Дали тебе рабочую программу - вот и пользуйся. А все изменения на свой страх и риск.

Добавлено через 36 минут
Цитата Сообщение от Ni'Tan Посмотреть сообщение
Можете их перерисовать!
Факел перерисовал, а то он у тебя "бегает". И сместил вверх, чтоб сильней дерево закрывал.
Пытался поменять фон. Какую ты палитру использовал?
(поставьте факел так, чтобы его закрывала часть дерева)
Нормально закрывает. А если поставить слева или за деревом, дерево чернеет(думал мож из за фона факела). А через середину огня "траву" видать.
2
Покинул форум
3183 / 1362 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
08.05.2010, 23:25 18
Цитата Сообщение от Grey Посмотреть сообщение
А через середину огня "траву" видать.
Это потому что цвет середины совпадает с общим фоном прозрачности. Вся картинка у меня состоит из 2 Bitmap'ов. Первый - текстурный слой, на нем рисуется само поле (трава).
Второй - обьектный слой. Так вот, второй слой - прозрачный. Цвет прозрачности - белый. Цвет середины факела - белый. Из-за этого и трава видна.


Цитата Сообщение от Grey Посмотреть сообщение
А если поставить слева или за деревом, дерево чернеет(думал мож из за фона факела)
Хм... у меня такого бага замечено не было. Ну это вообще еще альфа-версия.
Факел бегал потому что я его на скорую руку рисовал, чтобы проверить анимацию, как и остальные обьекты.
2
Тутошний я
2059 / 1127 / 208
Регистрация: 03.11.2009
Сообщений: 3,937
Записей в блоге: 2
08.05.2010, 23:53 19
Хм... у меня такого бага замечено не было.
Поменяй цвет фона факела н-р на синий. А то дерево зелёное и фон зелёный.
Вся картинка у меня состоит из 2 Bitmap'ов.
Спасибо. Так дествительно проще
2
48 / 48 / 10
Регистрация: 12.01.2010
Сообщений: 183
09.05.2010, 14:35  [ТС] 20
Цитата Сообщение от MiCr0s0fT Посмотреть сообщение
Меня неоднократно просили объяснить как засунуть изображение в DLL. Наверное нужно будет создать отдельную темку, в которой осветить этот вопрос.
Создай и кинь мне ссылку , или здесь опиши "процедуру", а то сам найти негде толком немогу ...
0
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.