私の2Dエンジンでは、フィーチャのグラフィックスを定義する構造体があります。その中には、 "middle、left_edge、top_left_corner"などの一連のSDL_Rectがあります。私のコードの一部では、一連の引数型をスクリプトエンジン/コマンドラインに初期化しています。のstd :: stringsの。構造体に一連のSDL_Rectを初期化するコピー貼り付けコードを避ける
スタイルの問題として、繰り返しによる愚かな間違いを避けて(そして間違いを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
私はそれは愚かな質問のように音を知っている - しかし、私のプログラミングは、私は「Wordのの仕事をやっているように感じたとき、私はいつも緊張しますフォーム印刷 " – lochok
長方形を初期化するサンプルスクリプトコードを投稿できますか? – Asaf
Bank 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