Gremlin92
@Gremlin92
Целеустремленный

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

На примерах олдовой графической библиотеки обучался я, к слову первая программа была мною создана в 2012 году, но нет ни одного релиза, всё от того, что трудно ориентироваться в программе в которой класс начинает занимать 1000+ строк кода, поясню вот есть метод например loadimage():
LoadImages()
{
...
   loadfile("1.png");
   loadfile("2.png);
...
   loadfile("100500.png");
...
}

И тоже самое с указанием координат
setverteces()
{
...
   object1.x=0.1;
   object1.y=0.2;
   object2.x=0.1;
   object2.y=0.3;
...
   object100500.x=0.4;
   object100500.y=-0.8;
...
}
,
класс раздувается до эпических размеров. Один скроллинг до нужного метода отнимает кучу времени и сил, что даже отбивает интерес к этому. Как можно написать допустим в среднем 10-15 методов в классе каждый из которых поместится на экране. То есть ускорить разработку, иначе я просто не успею ничего сделать? Как это реализовано в тех же юнити и прочих вещах? Можно ли реализовать так, чтобы не трогать код, а только ресурсы с добавлением фич и механик, уровней и объектов.
  • Вопрос задан
  • 90 просмотров
Решения вопроса 1
HemulGM
@HemulGM
Delphi Developer, сис. админ
Это можно превратить ..
object1.x=0.1;
object1.y=0.2;
object2.x=0.1;
object2.y=0.3;

в это
object1.SetCoord(0.1, 0.2);
object2.SetCoord(0.1, 0.2);


Для загрузки изображений используется файл (напр, json, xml или хотя бы просто ini) или словарь в коде в отдельном файле.

Если текстура загружается к этому объекту, то стоит написать нормальный конструктор
object1 = new object(0.1, 0.2, "100500.png");

А лучше, создавать объекты через сериализацию/десериализацию. Подготовить json файл c массивом объектов. С координатами, путями текстур и прочими свойствами. И загружать всё это дело одним циклом парой строк.
Ну или на каждый объект свой json, например:
{
  "x": 0.2,
  "y": 0.1,
  "texture": "car.png"
}

И создать объект указав этот файл:
object = new Object("/object1.json");
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
maaGames
@maaGames
Погроммирую программы
Нужно список изображений вынести в текстовый файл и грузить их в цикле - код класса не будет раздуваться. Координаты объектов грузить из файла и обрабатывать циклом - код класса не будет раздуваться.
xml, json, просто в своём текстовом формате - не важно. Данные удобнее загружать из файла, тогда дорабатывать можно просто изменяя текстовые файлы, без перекомпиляции. Возможно, даже без перезапуска игры.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы