08/10/25 20:34:22
初めてC#使ってゲーム(シューティング)作ろうとしてるんだけどメモリの使用量が東方の3倍ほど………
GCに頼らずに自分でメモリ管理をしたほうがいいんだよなぁ
というよりコードが初心者丸出しだw
自分の力不足OTL
というかExpressじゃないとXNA使えないとか3.0まで待てとっ!?
まあXNAつかうと確か
1..NetFramework
2.DirectX
3.XNAのFramework
といろいろ必要なわけだがw
33:デフォルトの名無しさん
08/10/25 20:46:13
タスクマネージャのメモリ使用量なんてナンセンスだよ
気になるならこういうおまじないがある
[DllImport("kernel32.dll")]
private static extern bool SetProcessWorkingSetSize(IntPtr proc, int min, int max);
private static void 秘密() {
var proc = Process.GetCurrentProcess();
SetProcessWorkingSetSize(proc.Handle, -1, -1);
}
これをときどき呼び出してやる
34:デフォルトの名無しさん
08/10/26 00:09:44
弾幕シュー目指してんならGC一回も起こさないくらいの
気概で組まないとキツイぞ。
35:デフォルトの名無しさん
08/10/26 00:21:36
>>32
こういう書き方やめてほしい
"というか"の前が>>32自身の問題なのに
"というか"以降はそうでない
36:デフォルトの名無しさん
08/10/26 00:35:20
ゴミはスルーしとけ
37:デフォルトの名無しさん
08/10/27 09:57:54
音の出し方ミスって、通常は何ともなかったのに連射で長時間やってたら繰り返してたらえらいことになったっけなー
38:デフォルトの名無しさん
09/02/09 13:02:38
byte[]をint[]として扱うにはどうすればいいですか?
39:デフォルトの名無しさん
09/02/09 13:54:04
複数バイトを一つのintに変換するの?
そのまま配列のサイズを変えずに変換したいの?
複数バイトからintへはBitConverter使う。
40:デフォルトの名無しさん
09/02/09 14:39:37
>>38
もっと具体的にたのむ、力になれん。
41:デフォルトの名無しさん
09/02/09 21:35:59
>>38
安全な方法
・BitConverterでちょっとずつ
・MemoryStream作ってBinaryReaderで読む
・int[]作ってBuffer.BlockCopy
危険な方法
unsafe { fixed (byte* p = byteArray) { int* pi = (int*)(void*)p; pi[1] = 3; } }