- ふらっと C#,C♯,C#(初心者用) Part118 [転載禁止]©2ch.net
82 :デフォルトの名無しさん[sage]:2015/12/04(金) 12:05:23.03 ID:ciEp6cCK - >>79
まず俺のやりたい事というのはアドベンチャーゲームのようなものを作っててこういう風にセリフを持ってます Serihu[] serihu=new Serihu[]{ new Serihu("こんにちは"), new Serihu("ご機嫌どうですか"), new Serihu("さようなら"), }; ここで問題になったのはこのテキストの中に変数を入れたい時どうするかというものでした 例えば「僕は○○をつかった」とか「僕は○○のダメージを受けた」などです そこで new Serihu("僕は",○○,"を使った")と○○に参照を入れる事を考えあれこれ試行錯誤しました で、解決法として○○にdelegateの関数ポインタを入れてやってみたら上手く行きました Serihuクラスの中で public delegate string Watasi(); public Watasi watasi;と宣言して コンストラクタを public Serihu(string m1,Watasi w,string m2){ moji1=m1; watasi=w; moji2=m2; } と書きます それでserihu配列の保持クラスに public string GetItemumei(){ return itemmei.Tostring();//itemmeiには使いたい変数を何でも使えます } と書いて 最初の配列に new Serihu("僕は",GetItemumei,"を使った") と入れると変数をそのまま使えるというわけです
|
- ふらっと C#,C♯,C#(初心者用) Part118 [転載禁止]©2ch.net
84 :デフォルトの名無しさん[]:2015/12/04(金) 12:36:37.37 ID:ciEp6cCK - >>83
やっぱり他人から見ればそう見えるのかw 自分でもそうなんじゃないかなぁとw まぁ何度も書いてくうちに効率的な書き方わかるようになるでしょ
|
- ふらっと C#,C♯,C#(初心者用) Part118 [転載禁止]©2ch.net
87 :デフォルトの名無しさん[]:2015/12/04(金) 12:54:34.09 ID:ciEp6cCK - >>86
平たく言うと まず最初にセリフを配列で持ちたい そしてそのセリフの中に動的に変数を入れたいということです
|
- ふらっと C#,C♯,C#(初心者用) Part118 [転載禁止]©2ch.net
89 :デフォルトの名無しさん[]:2015/12/04(金) 13:12:02.93 ID:ciEp6cCK - >>85
>>88 ちょっと俺無知ゆえになにか凄い勘違いをしてたのかもしれません ちょっとそれ調べて試してみます 上手く行ったら報告します
|
- ふらっと C#,C♯,C#(初心者用) Part118 [転載禁止]©2ch.net
92 :デフォルトの名無しさん[]:2015/12/04(金) 13:46:59.55 ID:ciEp6cCK - 試してみましたが上手く行きませんでした
string.Formatメソッドというのはstringを作るメソッドなのでセリフを表示する 時に使わないといけないと思います で、俺のプログラムでは最初にserihu配列を作る時にどの変数を参照するかも決定されるので 配列を作った時とセリフを表示されるまで間があります その間string.Formatで使う変数の参照を結局は持っておかないといけません
|
- ふらっと C#,C♯,C#(初心者用) Part118 [転載禁止]©2ch.net
93 :デフォルトの名無しさん[]:2015/12/04(金) 14:00:21.98 ID:ciEp6cCK - >>90
確かにデリゲートを使うのは俺も疑問でした 何しろ変数一個につき余計な関数が一つ増えますし明らかに冗長です でも他に思い付かなかったんですよ なんかあるんですかね
|
- ふらっと C#,C♯,C#(初心者用) Part118 [転載禁止]©2ch.net
95 :デフォルトの名無しさん[]:2015/12/04(金) 14:19:31.55 ID:ciEp6cCK - >>94
それでC#における参照とはなんなのかなぁと思って>>65の質問になったわけです 条件としてはある変数aをある変数bでも利用できるようにしたいというものなんですけど
|
- ふらっと C#,C♯,C#(初心者用) Part118 [転載禁止]©2ch.net
97 :デフォルトの名無しさん[]:2015/12/04(金) 14:29:10.18 ID:ciEp6cCK - >>96
それだとserihuクラス配列に渡す変数はすべてクラスで包まなければならないと 言う事になりませんか? 実はまだどの変数をセリフに渡すかとかは決めてないんです 恐らくゲームを作っていくうちに増えていくと思います それで変数をクラスで包むという手法には抵抗がありまして
|
- ふらっと C#,C♯,C#(初心者用) Part118 [転載禁止]©2ch.net
99 :デフォルトの名無しさん[]:2015/12/04(金) 14:42:25.47 ID:ciEp6cCK - なんか怒らせちゃったみたいでこの辺にしておきます
みなさん薄々気付いてるかもしれませんが前スレラストでちょっと荒れ気味になった件の あの者です 俺が来たらどこもああなります 何か人を苛つかせる能力でもあるのでしょうかw すいません この件は上手く行ったのでこれはこれでいいです ありがとうございました
|
- ふらっと C#,C♯,C#(初心者用) Part118 [転載禁止]©2ch.net
112 :デフォルトの名無しさん[]:2015/12/04(金) 23:18:07.68 ID:ciEp6cCK - >>111
セリフを配列にしたのはですね 正確には作ってるクラスはSerihuじゃなくてSinarioなんです Sinarioクラスの中にシナリオの情報が入ってるんですけどそれはセリフだけじゃなくて yes,noの選択肢、ゾーンの移動、音楽再生、分岐などに分類されてます それが順送りに進んだり分岐で別のラベルに飛んだりして遷移する訳です 遷移の制御の関数はゾーンごとに作る予定です それをわかりやすく記述するには初期化の所で配列に入れてしまうのが良いんじゃないかと 思ったんですけど
|