コピペ君って馬鹿だな、まで読んだ。
初めてC#使ってゲーム(シューティング)作ろうとしてるんだけどメモリの使用量が東方の3倍ほど………
GCに頼らずに自分でメモリ管理をしたほうがいいんだよなぁ
というよりコードが初心者丸出しだw
自分の力不足OTL
というかExpressじゃないとXNA使えないとか3.0まで待てとっ!?
まあXNAつかうと確か
1..NetFramework
2.DirectX
3.XNAのFramework
といろいろ必要なわけだがw
タスクマネージャのメモリ使用量なんてナンセンスだよ
気になるならこういうおまじないがある
[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);
}
これをときどき呼び出してやる
弾幕シュー目指してんならGC一回も起こさないくらいの
気概で組まないとキツイぞ。
>>32 こういう書き方やめてほしい
"というか"の前が
>>32自身の問題なのに
"というか"以降はそうでない
ゴミはスルーしとけ
音の出し方ミスって、通常は何ともなかったのに連射で長時間やってたら繰り返してたらえらいことになったっけなー
byte[]をint[]として扱うにはどうすればいいですか?
複数バイトを一つのintに変換するの?
そのまま配列のサイズを変えずに変換したいの?
複数バイトからintへはBitConverter使う。
>>38 安全な方法
・BitConverterでちょっとずつ
・MemoryStream作ってBinaryReaderで読む
・int[]作ってBuffer.BlockCopy
危険な方法
unsafe { fixed (byte* p = byteArray) { int* pi = (int*)(void*)p; pi[1] = 3; } }
>>41 良く危険とあるんだが
Unsafe使ってそういう処理すると何が危険なのかUnsafe使ったことない俺に教えてくれないか?
>>43 Unsafeは型保護のないメモリーアクセスを許すので。
本当にその場所が指定のデータか保護されないため、扱いが危険。
バウンダリーやインディアン等が考慮されなかったり、そのアドレスは正しいのか?
等々
×インディアン
○エンディアン
>そのアドレスは正しいのか?
これメモリアリアの境界越問題って事でいい??
メモリアリアってなんだよ!
メモリ上のアリアだよ
まじめにわからん、説明してくれ。
処理自体が危険なのではなくて、下手なバグ出した時に検出できなくて異常動作するのが危険
はいはい
C#かjavaで
文字列A "qwertyuiop" に
文字列B "cdefghij" のどれか
が1つでも含まれていたら真になるというのを
できるだけ高速にやりたいのです。
考えたのは
@
s="qwertyuiop";
f = s.IndexOf("c") + 1 + s.IndexOf("d") + 1 + …
A
配列に文字列Bのテーブルで真偽表を作り
文字列Aを一文字ずつ取り出しAscii値にしてテーブル参照して加算
ですがまだ重そうです。
何か関数等で高速にできる方法ありませんか?
あ、場所が違ったようです。
こちらは結構です。
54 :
デフォルトの名無しさん:2009/08/08(土) 21:45:12
public bool proc(String a, String b)
{
int p = 0, r = 0, l = b.Length;
while(
p<l && (r += a.IndexOf(b[p++])+1)<1
) ;
return r>0;
}
if(proc("qwertyuiop", "cdefghij"))
{
// 含まれてる
}
死にスレにレスするのもどうかと思うが
55 :
デフォルトの名無しさん:2009/09/23(水) 19:54:31
C#はオワタのか・・・
ゲ制作技術にあるのが本スレ
こっちは出張所ってわけでもなく、向こうにあるのを知らずに
>>1が立てちゃったスレ
C#使う人間は山ほどいる訳で、C#が終わったとかは無い
ただ、ム板でゲーム作ろう系のスレなんて結局こんなもん
つまり、場違い
a
✿
✿
✿梅✿
. ✿✿
?
?梅?
. ??
✿
✿梅✿
. ✿✿
✽
✼馬✹
. ✻✺
66 :
デフォルトの名無しさん:2010/05/14(金) 15:26:53
67 :
デフォルトの名無しさん:2011/03/13(日) 12:41:09.49
まだ?
68 :
1:2011/08/06(土) 22:21:52.70
delegate int Handler ();
にint型を返すプロパティを突っ込みたいのですが、どうすれば可能ですか
どうしてもデリゲートに関数ではなくプロパティを突っ込みたいので
そうではなく○○を使えというのは止めて下さい
ドラッグアンドドロップで画像を動かすUIって簡単に作れませんか?
>>72 実現するには、マウスダウンとマウスアップとマウスムーブのイベントが必要だ。
まず、マウスダウンで画像をクリックした場所を覚えておく。
次にマウスムーブで(カーソルの現在点-最初に覚えた場所の点)で描画する。
次にマウスアップで画像の描画場所を更新する。
って感じじゃないかな。
ちなみに、最初に覚える点は(覚える点-画像の原点)でローカル座標化しておいてもいいかもしれん。
大戦略みたいなのを作りたいけど
ヘキサゴンマップってどうやってやるんだ・・・
>>74 上下が水平線で左右が角になった6角マスを例に考える。
(そろばん玉を上から見たみたいな形)
横軸に関しては斜め移動になるわけだけど、ヘックス(6角マス)というのは
四角いマスを1行横にずれるごとに半マス縦ずらして擬似的に表現できる。
X軸が偶数の列だけ半マス下げた状態とかイメージするとわかりやすい。
上下の繋がりは普通の四角のマスと変わらない。
X軸が同じならY軸の移動は座標1づつ変化していくだけ。
移動処理を例に座標がどのように変化するか書いてみる。
斜め上なら半マス上がり、斜め下なら半マス上がる。
ただし現在位置が奇数行が偶数行かで処理を変える必要がある。
(1,1)から右上に進むと(2,1)、右下は(2,2)
(2,1)から右上に進むと(3,0)、右下は(3,1)
多分こんな感じ。
むずそうですね
ZODを考慮した最短コースを調べる場合
数式に当てはめてパッと計算できないのかな
IF文が大量になりそう
左に移動する毎に半マス下がり続ける座標系の方が簡単だった。
右下に移動する時の座標の変化量がX1、Y1で一定。
右上への移動がX軸の数値が1増加で、Y軸は変化なし。
方眼紙に2マス幅で縦線引いて、1マスずらしながら横線を引いて
擬似ヘックス作ってみるといいよ。
あ、ゴメン。
>>77で左右間違えてる。
「右に移動する毎に半マス下がり続ける」で
80 :
74:
今の時点ではちょっと難し過ぎるので
メモっておいて今後の参考にします
ありがとうございます