Форум » Вопросы о разработке игр » Требуется критика » Ответить

Требуется критика

stayer: Вот понаписал. Раскритикуйте (конструктивно) [quote] std::wstring CParse::GetString(const std::vector<std::wstring>& script, const std::wstring& val) { int index; size_t i; std::wstring str; for (i = 0; i < script.size(); ++i) { index = script.find(val); if (index>=0) break; } if (i<script.size()) str = script.substr(index + val.size(),script.size()); return str; } int CParse::GetObj(const std::vector<std::wstring>& script, const std::wstring& val) { for (size_t i = 0; i < script.size(); ++i) if (script == val) return i; return -1; } void CParse::GetFloatArr(const std::vector<std::wstring>& script, const std::wstring& val, float* ar) { size_t i; int num = 0; int index; for (i = 0; i < script.size(); ++i) { index = script.find(val); if (index>=0) break; } if (i<script.size()) { std::wstring str = script.substr(index + val.size() + 1,script.size()); bool b = true; while (b) { int l = str.find(','); if (l < 0) { l = str.find('}'); if (l>=0) b = false; } std::wstring str1 = str.substr(0,l); str = str.substr(l+1,str1.size()); ar[num] = static_cast<float>(_wtoi(str1.c_str())); num++; } } } void CParse::GetIntArr(const std::vector<std::wstring>& script, const std::wstring& val, int* ar) { size_t i; int num = 0; int index; for (i = 0; i < script.size(); ++i) { index = script.find(val); if (index>=0) break; } if (i<script.size()) { std::wstring str = script.substr(index + val.size() + 1,script.size()); bool b = true; while (b) { int l = str.find(','); if (l < 0) { l = str.find('}'); if (l>=0) b = false; } std::wstring str1 = str.substr(0,l); str = str.substr(l+1,str1.size()); ar[num] = static_cast<int>(_wtoi(str1.c_str())); num++; } } } void CParse::GetFloatArr(const std::wstring& script, const std::wstring& val, float* ar) { bool b = true; int num = 0; int index = = script.find(val); std::wstring str = script.substr(index + val.size() + 1,script.size()); while (b) { int l = str.find(','); if (l < 0) { l = str.find('}'); if (l>=0) b = false; } std::wstring str1 = str.substr(0,l); str = str.substr(l+1,str1.size()); ar[num] = static_cast<float>(_wtoi(str1.c_str())); num++; } } void CParse::GetIntArr(const std::wstring& script, const std::wstring& val, int* ar) { bool b = true; int num = 0; int index = = script.find(val); std::wstring str = script.substr(index + val.size() + 1,script.size()); while (b) { int l = str.find(','); if (l < 0) { l = str.find('}'); if (l>=0) b = false; } std::wstring str1 = str.substr(0,l); str = str.substr(l+1,str1.size()); ar[num] = static_cast<int>(_wtoi(str1.c_str())); num++; } } [/quote]

Ответов - 14

netlib: stayer пишет: std::wstring CParse::GetString(const std::vector<std::wstring>& script, const std::wstring& val) { int index; size_t i; std::wstring str; for (i = 0; i < script.size(); ++i) { index = script.find(val); if (index>=0) break; } if (i<script.size()) str = script.substr(index + val.size(),script.size()); return str; } Зачем здесь цикл? Не проще ли index = script.find(val); if (index>=0) str = script.substr(index + val.size(),script.size()); return str; }

netlib: Имя у функции GetObj не соответствует тому, что она делает. Никакого Obj она не возвращает. Два раза определены GetFloatAtt и GetIntArr. Инишники собираетесь парсить?

stayer: не, файлы сохранения уровней. Функции GetFloatArr и GetIntArr перегружены. Один вариант для вектора строк, второй для строки отдельной. Цикл нужен потому что вектор строк, твоё решение для конкретной строки. GetObj возвращает индекс в векторе, с которого начинается информация по объекту. Избавился от всех find сделал так: void CParse::GetIntArr(const std::vector<std::wstring>& script, const std::wstring& val, int* ar) { int num = 0; int index; for (size_t i = 0; i < script.size(); ++i) { index = script.find(val); if (index>=0) { int start(index + val.size() + 1); for (size_t j = start; j < script.size(); ++j) { const wchar_t c(script[j]); if (c == ',' || c == '}') { const std::wstring str1 = script.substr(start,j - start); ar[num++] = _wtoi(str1.c_str()); start = ++j; } } return; } } }


Inferno: Извиняюсь за оффтоп. Но не могли бы вы уважаемый stayer выложить демку или на худой конец скриншоты. Ну очень интересно что вы там такое разрабатываете.

stayer: Нет, не могу. Ни демку, ни скриншоты. Арта вообще пока нет. Выписываю двигло и редактор.

Inferno: Нет, не могу. Ни демку, ни скриншоты. Арта вообще пока нет. Выписываю двигло и редактор. Но хотя бы скажите как игра называется и что это будет(жанр,сюжет,геймплэй), если это не секрет. P.S. Если я правильно понял вы участвуете в разработке большого проекта над которым трудиться ваша команда?

stayer: Inferno , ога моя команда - 11 участников - 10 пальцев и мозг. Игрушка 2D простенький квест. Все остальное можно будет посмотреть по мере готовности. Ориентировочно альфа будет в конце февраля.

Inferno: Игрушка 2D простенький квест Я думал вы работаете над трехмерной игрой. Потому что вы здесь писали: http://netlib.borda.ru/?1-6-0-00000002-000-0-0-1212970593 stayer пишет: Для ядра, пофиг.Вот я пишу сейчас 3D двигло.На данном этапе мне необходимо добиться инициализации директ3д, отрисовку мешей, правильную работу камеры, выписать вектора и матрицы, выписать рендер, коллизии, частицы и много всего другого. Это общая часть, когда дело дойдет до конкретной игры то уже будут частности.

stayer: Inferno, на данный момент овчинка выделки не стоит. Писать трехмерное двигло в одиночку - утопия. К тому же есть приличные реализации - смотри Огр, Ирликт. Опять же с наполнением в трехмерной игре денег нужно немеряно. В 2д с этим проще.

Inferno: Опять же с наполнением в трехмерной игре денег нужно немеряно. Есть же бесплатные трехмерные редакторы, ну например Blender. Поэтому не обязательно платить 3000$ долларов за 3D MAX. К тому же можно найти художника и модельера энтузиаста. На худой конец нарисовать самому или воспользоваться бесплатными трехмерными моделями.

stayer: Это из разряда кулибиных, кому это будет нужно не ясно. В 2д можно сделать продукт, который будет продаваться.

Inferno: В 2д можно сделать продукт, который будет продаваться. Я кажется понимать, вы пишите игру что бы заработать бабки. Сразу бы таки и сказали, что вы пишите игру за деньги, а не как я за удовольствие и что бы покалбаситься.

stayer: Не за деньги и не ради. Смысл в другом - чтоб любимое дело помимо удовольствия - еще и кормило.

Inferno: Смысл в другом - чтоб любимое дело помимо удовольствия - еще и кормило. Теперь я вас уважаю. Сразу видно что наш человек. Что бы кормило это конечно хорошо, но если бы еще и на пиво хватало, то тогда ваще зашибись.



полная версия страницы