C# C# C♯でゲームを作ろう Part1

このエントリーをはてなブックマークに追加
31デフォルトの名無しさん:2008/10/24(金) 21:30:45
コピペ君って馬鹿だな、まで読んだ。
32デフォルトの名無しさん:2008/10/25(土) 20:34:22
初めてC#使ってゲーム(シューティング)作ろうとしてるんだけどメモリの使用量が東方の3倍ほど………
GCに頼らずに自分でメモリ管理をしたほうがいいんだよなぁ
というよりコードが初心者丸出しだw
自分の力不足OTL

というかExpressじゃないとXNA使えないとか3.0まで待てとっ!?
まあXNAつかうと確か
1..NetFramework
2.DirectX
3.XNAのFramework
といろいろ必要なわけだがw
33デフォルトの名無しさん:2008/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デフォルトの名無しさん:2008/10/26(日) 00:09:44
弾幕シュー目指してんならGC一回も起こさないくらいの
気概で組まないとキツイぞ。
35デフォルトの名無しさん:2008/10/26(日) 00:21:36
>>32
こういう書き方やめてほしい

"というか"の前が>>32自身の問題なのに
"というか"以降はそうでない
36デフォルトの名無しさん:2008/10/26(日) 00:35:20
ゴミはスルーしとけ
37デフォルトの名無しさん:2008/10/27(月) 09:57:54
音の出し方ミスって、通常は何ともなかったのに連射で長時間やってたら繰り返してたらえらいことになったっけなー
38デフォルトの名無しさん:2009/02/09(月) 13:02:38
byte[]をint[]として扱うにはどうすればいいですか?
39デフォルトの名無しさん:2009/02/09(月) 13:54:04
複数バイトを一つのintに変換するの?
そのまま配列のサイズを変えずに変換したいの?

複数バイトからintへはBitConverter使う。
40デフォルトの名無しさん:2009/02/09(月) 14:39:37
>>38
もっと具体的にたのむ、力になれん。
41デフォルトの名無しさん:2009/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; } }
42デフォルトの名無しさん:2009/03/19(木) 22:21:51
43デフォルトの名無しさん:2009/03/31(火) 13:05:03
>>41
良く危険とあるんだが
Unsafe使ってそういう処理すると何が危険なのかUnsafe使ったことない俺に教えてくれないか?
44デフォルトの名無しさん:2009/03/31(火) 15:31:24
>>43
Unsafeは型保護のないメモリーアクセスを許すので。
本当にその場所が指定のデータか保護されないため、扱いが危険。
バウンダリーやインディアン等が考慮されなかったり、そのアドレスは正しいのか?
等々
45デフォルトの名無しさん:2009/03/31(火) 16:07:22
×インディアン
○エンディアン

>そのアドレスは正しいのか?
これメモリアリアの境界越問題って事でいい??
46デフォルトの名無しさん:2009/03/31(火) 16:53:31
メモリアリアってなんだよ!
47デフォルトの名無しさん:2009/03/31(火) 16:55:04
メモリ上のアリアだよ
48デフォルトの名無しさん:2009/03/31(火) 16:57:52
まじめにわからん、説明してくれ。
49デフォルトの名無しさん:2009/03/31(火) 16:59:39
処理自体が危険なのではなくて、下手なバグ出した時に検出できなくて異常動作するのが危険
50デフォルトの名無しさん:2009/04/05(日) 12:22:35
51デフォルトの名無しさん:2009/04/18(土) 15:45:38
はいはい
52デフォルトの名無しさん:2009/04/23(木) 12:21:56
C#かjavaで
文字列A "qwertyuiop" に
文字列B "cdefghij" のどれか
が1つでも含まれていたら真になるというのを
できるだけ高速にやりたいのです。

考えたのは
@
s="qwertyuiop";
f = s.IndexOf("c") + 1 + s.IndexOf("d") + 1 + …
A
配列に文字列Bのテーブルで真偽表を作り
文字列Aを一文字ずつ取り出しAscii値にしてテーブル参照して加算

ですがまだ重そうです。
何か関数等で高速にできる方法ありませんか?
53デフォルトの名無しさん:2009/04/23(木) 12:24:25
あ、場所が違ったようです。
こちらは結構です。
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#はオワタのか・・・
56デフォルトの名無しさん:2009/09/23(水) 23:58:37
ゲ制作技術にあるのが本スレ
こっちは出張所ってわけでもなく、向こうにあるのを知らずに>>1が立てちゃったスレ
57デフォルトの名無しさん:2009/09/24(木) 06:12:23
C#使う人間は山ほどいる訳で、C#が終わったとかは無い
ただ、ム板でゲーム作ろう系のスレなんて結局こんなもん
つまり、場違い
58デフォルトの名無しさん:2009/10/22(木) 20:27:00
 
59デフォルトの名無しさん:2009/11/18(水) 10:02:41
a
60デフォルトの名無しさん:2009/12/05(土) 21:56:19
61デフォルトの名無しさん:2009/12/05(土) 22:35:56
   ✿
 ✿梅✿
.  ✿✿
62デフォルトの名無しさん:2010/01/29(金) 15:04:12
   ?
 ?梅?
.  ??
63デフォルトの名無しさん:2010/01/29(金) 15:06:02
   ✿
 ✿梅✿
.  ✿✿
64デフォルトの名無しさん:2010/01/29(金) 21:47:34
   ✽
 ✼馬✹
.  ✻✺

65デフォルトの名無しさん:2010/04/05(月) 10:15:54
移転しました

C# C# C♯ でゲームを作ろう Part1
http://pc11.2ch.net/test/read.cgi/gamedev/1212989813/
66デフォルトの名無しさん:2010/05/14(金) 15:26:53
 
67デフォルトの名無しさん:2011/03/13(日) 12:41:09.49
まだ?
681:2011/08/06(土) 22:21:52.70
69デフォルトの名無しさん:2012/02/04(土) 07:35:16.36
70デフォルトの名無しさん:2012/06/12(火) 20:26:09.08
delegate int Handler ();

にint型を返すプロパティを突っ込みたいのですが、どうすれば可能ですか
どうしてもデリゲートに関数ではなくプロパティを突っ込みたいので
そうではなく○○を使えというのは止めて下さい

71デフォルトの名無しさん:2012/06/12(火) 21:01:57.35
ご希望にほ添えてないと思うけど、ラムダで一弾ラップした。
ttp://ideone.com/arQlA

プロパティが内部的に引数なし関数と同じものかどうかもよくわからんしなー。
72デフォルトの名無しさん:2012/06/22(金) 00:55:32.51
ドラッグアンドドロップで画像を動かすUIって簡単に作れませんか?
73デフォルトの名無しさん:2012/06/22(金) 01:23:58.33
>>72
実現するには、マウスダウンとマウスアップとマウスムーブのイベントが必要だ。
まず、マウスダウンで画像をクリックした場所を覚えておく。
次にマウスムーブで(カーソルの現在点-最初に覚えた場所の点)で描画する。
次にマウスアップで画像の描画場所を更新する。

って感じじゃないかな。
ちなみに、最初に覚える点は(覚える点-画像の原点)でローカル座標化しておいてもいいかもしれん。
74デフォルトの名無しさん:2012/09/07(金) 11:17:27.78
大戦略みたいなのを作りたいけど
ヘキサゴンマップってどうやってやるんだ・・・
75デフォルトの名無しさん:2012/09/07(金) 13:12:50.91
>>74
上下が水平線で左右が角になった6角マスを例に考える。
(そろばん玉を上から見たみたいな形)

横軸に関しては斜め移動になるわけだけど、ヘックス(6角マス)というのは
四角いマスを1行横にずれるごとに半マス縦ずらして擬似的に表現できる。
X軸が偶数の列だけ半マス下げた状態とかイメージするとわかりやすい。

上下の繋がりは普通の四角のマスと変わらない。
X軸が同じならY軸の移動は座標1づつ変化していくだけ。

移動処理を例に座標がどのように変化するか書いてみる。
斜め上なら半マス上がり、斜め下なら半マス上がる。
ただし現在位置が奇数行が偶数行かで処理を変える必要がある。
(1,1)から右上に進むと(2,1)、右下は(2,2)
(2,1)から右上に進むと(3,0)、右下は(3,1)

多分こんな感じ。
76デフォルトの名無しさん:2012/09/07(金) 13:24:20.83
むずそうですね
ZODを考慮した最短コースを調べる場合
数式に当てはめてパッと計算できないのかな
IF文が大量になりそう
77デフォルトの名無しさん:2012/09/07(金) 13:58:31.39
左に移動する毎に半マス下がり続ける座標系の方が簡単だった。
右下に移動する時の座標の変化量がX1、Y1で一定。
右上への移動がX軸の数値が1増加で、Y軸は変化なし。
78デフォルトの名無しさん:2012/09/07(金) 14:01:09.00
方眼紙に2マス幅で縦線引いて、1マスずらしながら横線を引いて
擬似ヘックス作ってみるといいよ。
79デフォルトの名無しさん:2012/09/07(金) 14:04:03.97
あ、ゴメン。
>>77で左右間違えてる。
「右に移動する毎に半マス下がり続ける」で
8074
今の時点ではちょっと難し過ぎるので
メモっておいて今後の参考にします
ありがとうございます