ページ 1 / 1
ゲーム作成で、汎用的なメソッドの呼び出しを一々したくないのですが…
Posted: 2013年11月06日(水) 22:10
by AI
こんにちは。
今、C#+DXLibでゲームを作っています。
構成は、まずメインループがあり、そこには演算処理・描画処理などの部分があります。
それらの部分に、別のファイルにあるタイトル画面の処理やダンジョンの処理などを状況に応じて読み込んで実行していきます。
これらのファイルの中で、一々キーボードの読み込みやウィンドウの作成などのクラスを読み込んでいるのですが、
どのファイルでも使うものなので、もしできればメインループで一度読み込んでOKということにしたいのです。
そういうことはできるでしょうか?
C#を始めたばかりなので、基本的なことがわかっていないのだと思います。
やり方があれば教えてください。
あと、もし「こうしたほうがいいよ」というものがあれば、それも教えていただけると嬉しいです!
Re: ゲーム作成で、汎用的なメソッドの呼び出しを一々したくないのですが…
Posted: 2013年11月06日(水) 23:18
by softya(ソフト屋)
クラスのインスタンスを別のクラスでも使いたいということでしょうか? C#の文法レベルの理解度が分からないので教えていただけますか?
>一々キーボードの読み込みやウィンドウの作成などのクラスを読み込んでいる
ここが曖昧な表現なので質問の意図を掴みかねています。
Re: ゲーム作成で、汎用的なメソッドの呼び出しを一々したくないのですが…
Posted: 2013年11月06日(水) 23:24
by AI
C#は高校の頃に少しだけやっていて、Helloworldから簡単な計算のコードがかける程度です。最近は構造体を勉強しました。
>一々キーボードの読み込みやウィンドウの作成などのクラスを読み込んでいる
メインループとは別のファイルに、キーボードの処理をするクラスが有ります。
そのクラスのインスタンスを、メインループから呼んでいるタイトル・ダンジョン・街などの各ファイルで逐一作成し、
メソッドを利用しています。
この処理をなくし、メインループで一度インスタンスを作成しそれを各シーンで使い回せれば…と思っています。
これはふつうのコトなのでしょうか?インスタンスを何度も作ると無駄があってよくないのかなあと思っていたのですが、
これが普通であればこのままで大丈夫です。
このあたりの感覚もまだ全然なくて…説明もわかりづらくて申し訳ありません。
お手数ですが何卒よろしくお願いいたします!
Re: ゲーム作成で、汎用的なメソッドの呼び出しを一々したくないのですが…
Posted: 2013年11月06日(水) 23:48
by softya(ソフト屋)
インスタンスの生成は最低限に抑えるべきですので、1つのインスタンスが理想です。
メインから参照で受け渡すか、シングルトンにすべきかと思います。
「C# - Singleton(たった1つのインスタンス)」
http://hccweb1.bai.ne.jp/tsune-1/CSharp/singleton.html
インスタンスが複数あるとバグにも悩まされると思います。
あと、ちゃんとC#の文法やオブジェクト指向を学ばれたほうが良いと思いますよ。
【補足】
各クラスがキーボードのクラスのインスタンスを受け取ってよいかという抽象化設計的な問題もありますけど。
Re: ゲーム作成で、汎用的なメソッドの呼び出しを一々したくないのですが…
Posted: 2013年11月07日(木) 08:27
by AI
〉ちゃんとC#の文法やオブジェクト指向を学ばれたほうが良いと思いますよ。
ありがとうございます!そうですよね、今ゲームを作っているのは、c#の学習のためなんです…何か楽しいことがないと続かないもので…
〉メインから参照で受け渡すか、
これは「参照渡し」のことでしょうか?
今調べてきたのですが、参照渡しは呼び出した変数をメソッド内から書き換えたいために利用するのですよね?
インスタンスを書き換えることはないと思うのですが、値渡しではいけないのでしょうか?
シングルトンについては家に帰ってから中身を理解しようと思います。いつもありがとうございます!
Re: ゲーム作成で、汎用的なメソッドの呼び出しを一々したくないのですが…
Posted: 2013年11月07日(木) 10:34
by softya(ソフト屋)
参照で受け取っても変更できない方法はあります。とう言うかクラスならカプセル化で出来ますよ。
c#を忘れてきているので、constはクラスに対して使えなかったと記憶してるんですが他にも方法があるかもしれません。
Re: ゲーム作成で、汎用的なメソッドの呼び出しを一々したくないのですが…
Posted: 2013年11月07日(木) 23:21
by AI
カプセル化もよくわかってないので今後調べます!
シングルトンは(もう出来上がっていますし)使いやすそうではあるのですが、きっとこれをそのまま使って満足してしまいそうなので今後は参照渡しとか積極的に使っていきたいと思っています。
オブジェクト指向は言葉とイメージだけなんとなくわかっていたレベルだったのですが、調べてみたらすごく面白そうだったので、今作ってるものをエセオブジェクト指向っぽくしていってみたいです。
いつもお世話になっております、ありがとうございました!