プログラム関連
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[ハルト]]
*プログラム関連(C#) [#n6fd120a]
-C#-DXLib関連~
DXLibDotNetでのDrawFormatStringの自作。~
適当にDxLib.cs弄って追加するなりpartialにするなり。~
使い方はC/C++DXLibのではなく、C#のWriteLineなどの使い方({0},{1}などを置き換える)~
public static int DrawFormatString(int x, int y, int color, string str, params object[] args)
{
for (int i = 0; i < args.Length; ++i)
{
str = str.Replace("{" + i.ToString() + "}", args[i].ToString());
}
return DX.DrawString(x, y, str, color);
}
-フォームとDxLibを共存させてみようとかいう方法その1~
普通にVisualStudioでフォームアプリケーション作ってProgram.csを見ると以下のようになっているはず。~
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
このコードを
static void Main()
{
Application.EnableVisualStyles(); //visualスタイルの有効化
//フォーム生成
Form1 form = new Form1();
form.Show();
while (form.Created) //フォームがある間ループ
{
//自作関数。
form.OnPaint();
Application.DoEvents();
}
}
こう書き換える。~
こうすることでfps制御等がしやすくなる。~
formのイベントとして処理するのではなく、メインループをここに作る感じ。~
あとはformのコンストラクタあたりで以下のように初期化
DX.SetUserWindow(this.Handle); //親ウインドウをこのフォームに設定
DX.DxLib_Init(); //初期化
これでDxLibの描画をフォームに渡せるので、
自作関数(上のOnPaint)で普通に描画すればフォームにDxLibが使えます。~
OnPaintを呼び出すのは外部(ここではMain関数)であることがポイント~
ちなみにC#デフォルトのTimerコンポーネントではfps制御等には全く役に立たないので使わないように。~
(そういう用途に使うものではない)~
*プログラム関連 (C/C++)[#h7084a04]
別ページに分けてみました。なんかあったら勝手に追加します。~
**Windows7におけるVisualStudio2008のリンクエラーについて [#i04e37ed]
Windows7でVisualStudio2008を使ってビルドするとエラーが発生することがあるようです。(PC依存、または開発規模依存かもしれない)~
「Microsoft(R) Incremental Linkerは動作を停止しました」というメッセージボックスが出て、LNK1000だかなんだかがエラーとして通知されます。~
直し方は~
http://archive.msdn.microsoft.com/KB948127 (msdn)~
のページのDownloadsタブから修正パッチ"VS90-KB948127.exe"をダウンロードして実行すれば直るようです。~
~
詳しくはここ→http://support.microsoft.com/kb/948127~
会室でエラー発生が確認されたPCには入れました~
**VisualStudio便利機能集 [#p9c2747f]
確かにまとめたものがあってもいいよなーと思って作ってしまった。~
デバッグに役立つショートカットキーとか、各種ウインドウ等の説明が書いてあります。~
(6/25)なんか急に思い立って少し加筆修正。~
欲しければどうぞ。~
【[[VisualStudio_function.pdf:http://sherbet.transjiggen.com/ccs/ccs_wiki2/index.php?plugin=attach&pcmd=open&file=VisualStudio_function.pdf&refer=%A5%CF%A5%EB%A5%C8]]】~
4-7のカーソル位置保存する機能は2010にはないのかもしれない。~
***csv文字列の読み込み [#i67a0d47]
Cでcsvからのデータ読み込み。いい方法があれば教えてほしいです~
以下のようなファイルに普通にsscanf(fscanf)を使おうとするとカンマも文字列とみなされ、読み込みが失敗する。~
データ~
100,0.3,helloworld,25
読み込み(文字列strに上記データが入っているとする)~
sscanf( str , "%d,%f,%s,%d" , ... );
→これでは%sでhelloworld,25が読み込まれて最後の%dが正常に機能しない。~
そこで、%sでなく%[^,]を使うとうまくいく。~
%[^*]は*に入れた文字以外を読み込むという意味~
上の例では、~
sscanf( str , "%d,%f,%[^,],%d" , ... );
とするとうまく読み込めるはず~
***VisualStudioでのメモリリークの検出 [#la1fd484]
とりあえず[[参考リンク:http://marupeke296.com/TIPS_No7_SearchMemoryLeak.html]]参照のこと。
*DXライブラリ関係 [#oce48752]
・最低限+αのソース→【[[dxlibmain.cpp:http://sherbet.transjiggen.com/ccs/ccs_wiki2/index.php?plugin=attach&pcmd=open&file=dxlibmain.cpp&refer=%A5%CF%A5%EB%A5%C8]]】~
ダブルバッファリングとウィンドウタイトル変更、ウインドウモードなどの関数をあらかじめ書いておいたソース。
DXライブラリ導入後、コピーして貼りつければ多分動きます。(Escapeで終了)~
***基本的な扱い方 [#a040f033]
まずは[[リファレンス:http://homepage2.nifty.com/natupaji/DxLib/dxfunc.html]]や[[サンプルプログラム:http://homepage2.nifty.com/natupaji/DxLib/dxprogram.html]]や[[DXライブラリ ゲームプログラム講座:http://homepage2.nifty.com/natupaji/DxLib/dxlecture_main.html]]。~
[[C言語ゲームプログラムの館:http://dixq.net/g/]]なんかも役立つと思います。~
あとノベルゲー寄りですがここも→[[ゲーム作りで学ぶ!実践的C言語プログラミング:http://www.usamimi.info/~guiprog/game/]]~
10年度の講座のも一応貼っておく~
[[DXライブラリ講座]]
***その他の扱い方 [#y851e281]
[[ゲーム製作技術メモ]]←こちらに任せます(というかリンク先に書きます)
**その他 [#xd11ce8a]
ゆんさんのメモ書き。役立つのに埋もれてるので(特に後者)リンクしときます。(半分くらい自分用)~
[[C2C++:http://sherbet.transjiggen.com/ccs/ccs_wiki2/index.php?%A4%E6%A4%F3%2FC2C%2B%2B]]~
[[バグを減らすために:http://sherbet.transjiggen.com/ccs/ccs_wiki2/index.php?%A4%E6%A4%F3%2F%A5%D0%A5%B0%A4%F2%B8%BA%A4%E9%A4%B9%B0%D9%A4%CB]]~
終了行:
[[ハルト]]
*プログラム関連(C#) [#n6fd120a]
-C#-DXLib関連~
DXLibDotNetでのDrawFormatStringの自作。~
適当にDxLib.cs弄って追加するなりpartialにするなり。~
使い方はC/C++DXLibのではなく、C#のWriteLineなどの使い方({0},{1}などを置き換える)~
public static int DrawFormatString(int x, int y, int color, string str, params object[] args)
{
for (int i = 0; i < args.Length; ++i)
{
str = str.Replace("{" + i.ToString() + "}", args[i].ToString());
}
return DX.DrawString(x, y, str, color);
}
-フォームとDxLibを共存させてみようとかいう方法その1~
普通にVisualStudioでフォームアプリケーション作ってProgram.csを見ると以下のようになっているはず。~
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
このコードを
static void Main()
{
Application.EnableVisualStyles(); //visualスタイルの有効化
//フォーム生成
Form1 form = new Form1();
form.Show();
while (form.Created) //フォームがある間ループ
{
//自作関数。
form.OnPaint();
Application.DoEvents();
}
}
こう書き換える。~
こうすることでfps制御等がしやすくなる。~
formのイベントとして処理するのではなく、メインループをここに作る感じ。~
あとはformのコンストラクタあたりで以下のように初期化
DX.SetUserWindow(this.Handle); //親ウインドウをこのフォームに設定
DX.DxLib_Init(); //初期化
これでDxLibの描画をフォームに渡せるので、
自作関数(上のOnPaint)で普通に描画すればフォームにDxLibが使えます。~
OnPaintを呼び出すのは外部(ここではMain関数)であることがポイント~
ちなみにC#デフォルトのTimerコンポーネントではfps制御等には全く役に立たないので使わないように。~
(そういう用途に使うものではない)~
*プログラム関連 (C/C++)[#h7084a04]
別ページに分けてみました。なんかあったら勝手に追加します。~
**Windows7におけるVisualStudio2008のリンクエラーについて [#i04e37ed]
Windows7でVisualStudio2008を使ってビルドするとエラーが発生することがあるようです。(PC依存、または開発規模依存かもしれない)~
「Microsoft(R) Incremental Linkerは動作を停止しました」というメッセージボックスが出て、LNK1000だかなんだかがエラーとして通知されます。~
直し方は~
http://archive.msdn.microsoft.com/KB948127 (msdn)~
のページのDownloadsタブから修正パッチ"VS90-KB948127.exe"をダウンロードして実行すれば直るようです。~
~
詳しくはここ→http://support.microsoft.com/kb/948127~
会室でエラー発生が確認されたPCには入れました~
**VisualStudio便利機能集 [#p9c2747f]
確かにまとめたものがあってもいいよなーと思って作ってしまった。~
デバッグに役立つショートカットキーとか、各種ウインドウ等の説明が書いてあります。~
(6/25)なんか急に思い立って少し加筆修正。~
欲しければどうぞ。~
【[[VisualStudio_function.pdf:http://sherbet.transjiggen.com/ccs/ccs_wiki2/index.php?plugin=attach&pcmd=open&file=VisualStudio_function.pdf&refer=%A5%CF%A5%EB%A5%C8]]】~
4-7のカーソル位置保存する機能は2010にはないのかもしれない。~
***csv文字列の読み込み [#i67a0d47]
Cでcsvからのデータ読み込み。いい方法があれば教えてほしいです~
以下のようなファイルに普通にsscanf(fscanf)を使おうとするとカンマも文字列とみなされ、読み込みが失敗する。~
データ~
100,0.3,helloworld,25
読み込み(文字列strに上記データが入っているとする)~
sscanf( str , "%d,%f,%s,%d" , ... );
→これでは%sでhelloworld,25が読み込まれて最後の%dが正常に機能しない。~
そこで、%sでなく%[^,]を使うとうまくいく。~
%[^*]は*に入れた文字以外を読み込むという意味~
上の例では、~
sscanf( str , "%d,%f,%[^,],%d" , ... );
とするとうまく読み込めるはず~
***VisualStudioでのメモリリークの検出 [#la1fd484]
とりあえず[[参考リンク:http://marupeke296.com/TIPS_No7_SearchMemoryLeak.html]]参照のこと。
*DXライブラリ関係 [#oce48752]
・最低限+αのソース→【[[dxlibmain.cpp:http://sherbet.transjiggen.com/ccs/ccs_wiki2/index.php?plugin=attach&pcmd=open&file=dxlibmain.cpp&refer=%A5%CF%A5%EB%A5%C8]]】~
ダブルバッファリングとウィンドウタイトル変更、ウインドウモードなどの関数をあらかじめ書いておいたソース。
DXライブラリ導入後、コピーして貼りつければ多分動きます。(Escapeで終了)~
***基本的な扱い方 [#a040f033]
まずは[[リファレンス:http://homepage2.nifty.com/natupaji/DxLib/dxfunc.html]]や[[サンプルプログラム:http://homepage2.nifty.com/natupaji/DxLib/dxprogram.html]]や[[DXライブラリ ゲームプログラム講座:http://homepage2.nifty.com/natupaji/DxLib/dxlecture_main.html]]。~
[[C言語ゲームプログラムの館:http://dixq.net/g/]]なんかも役立つと思います。~
あとノベルゲー寄りですがここも→[[ゲーム作りで学ぶ!実践的C言語プログラミング:http://www.usamimi.info/~guiprog/game/]]~
10年度の講座のも一応貼っておく~
[[DXライブラリ講座]]
***その他の扱い方 [#y851e281]
[[ゲーム製作技術メモ]]←こちらに任せます(というかリンク先に書きます)
**その他 [#xd11ce8a]
ゆんさんのメモ書き。役立つのに埋もれてるので(特に後者)リンクしときます。(半分くらい自分用)~
[[C2C++:http://sherbet.transjiggen.com/ccs/ccs_wiki2/index.php?%A4%E6%A4%F3%2FC2C%2B%2B]]~
[[バグを減らすために:http://sherbet.transjiggen.com/ccs/ccs_wiki2/index.php?%A4%E6%A4%F3%2F%A5%D0%A5%B0%A4%F2%B8%BA%A4%E9%A4%B9%B0%D9%A4%CB]]~
ページ名: