У меня есть структура для определения графики функции в моем 2D-движке. В этом есть серия SDL_Rects под названием «middle, left_edge, top_left_corner» и т. Д. В части моего кода я инициализирую их с помощью ряда типов аргументов в командной строке сценариев/командной строки, которые хранятся в виде вектора из std :: строк.Избегание кода вставки кода, инициализирующего ряд SDL_Rects в Struct
В качестве стиля и избегания глупых ошибок из-за повторения (и для устранения любых ошибок 9 раз) есть ли способ очистить этот код? Или это будет разумно?
//RectZeroes is just an SDL_Rect of {0,0,0,0} to ensure that it is initialised
SDL_Rect middle = RectZeroes;
if (args.size() >= 6)
{
middle.x = boost::lexical_cast<int>(args[3]);
middle.y = boost::lexical_cast<int>(args[4]);
middle.w = boost::lexical_cast<int>(args[5]);
middle.h = boost::lexical_cast<int>(args[6]);
}
SDL_Rect left_edge = RectZeroes;
if (args.size() >= 10)
{
left_edge.x = boost::lexical_cast<int>(args[7]);
left_edge.y = boost::lexical_cast<int>(args[8]);
left_edge.w = boost::lexical_cast<int>(args[9]);
left_edge.h = boost::lexical_cast<int>(args[10]);
}
//And so on
Я знаю, это звучит как глупый вопрос - но я всегда нервничаю, когда мое программирование чувствует, как я делаю работу Слова в " Form Printing " – lochok
Можете ли вы разместить образец кода сценария, который инициализирует прямоугольники? – Asaf
Банк AddFeatureStyle «Дескриптор» «LeftTrayEdge.png» 3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 - Его простой язык скриптов, который я сделал для него (больше интерпретатора стиля командной строки, затем все остальное) - все после этого начального 3 - это прямоугольники. Сценарий не обязательно будет хорошо читаемым человеком - скорее всего, я напишу небольшой CSV-> MyDodgyScript-конвертер для таких битов, как это, поэтому я могу использовать фактическую таблицу с таблицами – lochok