LINUX.ORG.RU
ФорумGames

Как добавлять изображения/объекты не раздувая код класса?

 


0

1

На примерах олдовой графической библиотеки обучался я, к слову первая программа была мною создана в 2012 году, но нет ни одного релиза, всё от того, что трудно ориентироваться в программе в которой класс начинает занимать 1000+ строк кода, поясню вот есть метод например loadimage():

LoadImages()
{
...
   loadfile("1.png");
   loadfile("2.png);
...
   loadfile("100500.png");
...
}

И тоже самое с указанием координат, класс раздувается до эпических размеров. Один скроллинг до нужного метода отнимает кучу времени и сил, что даже отбивает интерес к этому. Как можно написать допустим в среднем 10-15 методов в классе каждый из которых поместится на экране. То есть ускорить разработку, иначе я просто не успею ничего сделать? Как это реализовано в тех же юнити и прочих вещах? Можно ли реализовать так, чтобы не трогать код, а только ресурсы с добавлением фич и механик, уровней и объектов.

Эм, а не проще ли передавать список изображений в функцию в виде массива и уже с ним через итерации корячиться?

Korchevatel ★★★★★
()

Загружать списки изображений и все координаты из текстового файла, разумеется.

Какой язык, Си? Библиотек для чтении файлов в формате INI или JSON для Си большой выбор.

Если JavaScript, то там и так JSON из коробки.

wandrien ★★
()
Ответ на: комментарий от wandrien

не шарю ни в джейсоне ни в ини, их же надо составить вначале, а потом парсером считать, плюс например полигоны рисовать различные, плюс сделать анимацию-смену изображений в ряду

bad_master
() автор топика

первая программа была мною создана в 2012 году

класс начинает занимать 1000+ строк кода

поясню… (не умеет в циклы, не додумался убрать список файлов с координатами в csv/json/yaml)

Это такой тупой троллинг?

WitcherGeralt ★★
()
Ответ на: комментарий от WitcherGeralt

это самообразование такое. Не кому было подсказать. Хотя я пробовал координаты скинуть голыми в файл, я спросил чтобы знать стандарт в какой формат. А вот например управляющие команды тоже можно, но это надо архитектуру приложения обдумать

bad_master
() автор топика
Ответ на: комментарий от wandrien

я то могу придумать, только никто кроме меня это не сможет понять. Нужны стандарты принятые в большинстве контор, про которые я не в курсе

bad_master
() автор топика
Ответ на: комментарий от WitcherGeralt

я то бросал, то кодил для других специальностей

bad_master
() автор топика
Ответ на: комментарий от bad_master

умею

Заблуждение:

   loadfile("1.png");
   loadfile("2.png);
...
   
   loadfile("100500.png");

Не только не умеешь. Но и не хочешь учиться.

Важны не знания (хотя и они тоже, но во вторую очередь), а навыки, а ты их не тренировал.

wandrien ★★
()
Ответ на: комментарий от bad_master
void bzero(char* buf, int l)
{
    for (int i = 0; i < l; i++)
        buf[i] = '\0';
}
  1. Использует самописную реализацию библиотечного алгоритма.
  2. Одна эта тема показывает реальный объем проблем для потенциального работодателя.
wandrien ★★
()
int image_load_fmt(char* fmt, ...) {

  char name_buff[512]; //не комельфо, но можно в аргументы функции вынести
  va_list args;
  va_start(args, fmt);
  vsnprintf(name_buff, 511, fmt, args);
  va_end(args);
  
  return load_file(name_buff);
  
}

for(i=0;i< 100500;i++)
{
   if(image_load_fmt("%d.png",i) == IMAГЕ_ЛОAD_КРЯ)
   {
      debug("йо сломалось");
      break;
   }
}

Это если у тебя имена именно прям числа. Если нет, то пиши функцию которая будет принимать каталог/каталоги и строить список файлов из него/их, а затем в цикле также их загружать обходя массив с путями до картинок (и чего угодно ещё иного). Опять же если картинки не меняются постоянно то вообще пропиши их пути все в файл и пусть функция читает этот файл с путями построчно и загружает.

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от bad_master

Тоже в файл запиши, даже удобнее будет не надо пеересобирать прогу что-бы значения поменять, если религиозных и прочих нет болячек то прикрути к своему приложению ini конфиг и пусть программа читает конфиги инициализируя не отдельные значения, а массивы.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от bad_master

ни тут

Тут никого не любят, а ты вообще только что по сути появился на лоре судить об отношении к себе рановато.

ни там

Там лицемерная помойка, маркетинговый булшит и прочие проявления социального идолопоклонничества. Есть нормальные люди с интересными статьями, но это исключение. Так что глубоко пох та то как на васянских сайтах к тебе относятся.

ни в ирл

Хотя бы один человек из твоего окружения относится к тебе спокойно этого более чем достаточно. Ну, а так. Мойся почаще там я не знаю в носу не ковыряй =) Не пукай в автобусе и люди к тебе потянутся. :D

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от WitcherGeralt

Ааааа =) Ну, я не знаю почему, но он лично мне кажется прикольным. Я даже SIC! на него работал, был тред в job где я чёта ему делал, уже не помню что именно. =)

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от WitcherGeralt

Да, ладно норм, тут для общего случая, можно так и можно сяк.

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.