例えば、この間公開した弾幕遊戯2では
殆どそれ専用と言えるやり方でキーボードの入力&パッドの入力を管理していましたが
キーボードの入力を制御する KeyInput
パッドの入力を制御する PadInput
マウスの入力を制御する MouseInput
という基底クラスを用意しておいて
あとは開発するゲームのUIに合わせて基底クラスをチョイス
そして必要に応じて少し手を加えるだけで簡単にそのゲーム用の入力処理が出来上がる・・・
なるほど、上手く使えば作業時間の大幅な短縮が期待できると言う訳ですね
他にも格闘ゲームのキャラクターとかにも使えそう
なんで学校ではオブジェクト指向云々言う割には、こういう具体的なメリットを教えてくれなかったのか
クラス化とカプセル化ばかりでその他が等閑だった気がしますね
ともかく、今後は継承を上手く使って作業時間の短縮を図ることにします
と言う、何てことない独り言でした
最近になってやっと継承の便利さに気付いた
Re: 最近になってやっと継承の便利さに気付いた
専門学校などの場合は生徒がみんな理解が深いわけではないので
いきなりポリモフィズムやインヘリタンスの話はできないってのがあります。
私は専門学校に入ったときは最初の1年はCしか授業でやらなかったので、
家ではc++をもっぱら勉強していましたが、
それでもオブジェクト指向のメリットを深いところまで理解できるようになったのは就職して1年経ったときでした。
クラスを覚えなくてもゲームはCだけで十分作れるので
学校ではロジックを中心に教えてるんだと思います
いきなりポリモフィズムやインヘリタンスの話はできないってのがあります。
私は専門学校に入ったときは最初の1年はCしか授業でやらなかったので、
家ではc++をもっぱら勉強していましたが、
それでもオブジェクト指向のメリットを深いところまで理解できるようになったのは就職して1年経ったときでした。
クラスを覚えなくてもゲームはCだけで十分作れるので
学校ではロジックを中心に教えてるんだと思います
Re: 最近になってやっと継承の便利さに気付いた
>>せんちゃさん
言われてみれば僕は元々C言語の基礎知識を持った状態で入学しましたから
入学してから半年くらいは半ば教える側に回ってましたからねぇ(苦笑)
オブジェクト指向って、とっつきづらい割にはある程度実戦で使わないとありがたみが分からないですし
小難しいことばかり言っていても学生の方がダレちゃうのかもしれませんね
格言う僕もまだ完全に実行出来ているかと言われれば怪しいところもあるんですけども・・・w
これから本格的にプログラミングのお仕事を始めるにあたって、そういう知識を有効に活用出来ればいいんですけれどね
言われてみれば僕は元々C言語の基礎知識を持った状態で入学しましたから
入学してから半年くらいは半ば教える側に回ってましたからねぇ(苦笑)
オブジェクト指向って、とっつきづらい割にはある程度実戦で使わないとありがたみが分からないですし
小難しいことばかり言っていても学生の方がダレちゃうのかもしれませんね
格言う僕もまだ完全に実行出来ているかと言われれば怪しいところもあるんですけども・・・w
これから本格的にプログラミングのお仕事を始めるにあたって、そういう知識を有効に活用出来ればいいんですけれどね
RE: 最近になってやっと継承の便利さに気付いた
継承は便利ですが、利点に気づくまでちょっと時間がかかりますよね・・
私もC++を学び始めたとき、クラスとカプセル化については進んで使っていたのですが、
継承については分からなくて、共通するメンバをコピペして似たようなクラスを量産していました。
今は継承を使わずにプログラムを組むことが考えられないくらい重宝しています。
私もC++を学び始めたとき、クラスとカプセル化については進んで使っていたのですが、
継承については分からなくて、共通するメンバをコピペして似たようなクラスを量産していました。
今は継承を使わずにプログラムを組むことが考えられないくらい重宝しています。
Re: 最近になってやっと継承の便利さに気付いた
ゲーム本体が必要な入力を抽象化した基本クラスを作って、KeyInput,PadInput,MouseInputはそれを継承する形にすると、カーソルキーで移動&マウスボタンでショットとか周辺機器を自由に組み合わせる実装も楽になりますよ。
Re: 最近になってやっと継承の便利さに気付いた
>>ぼずおさん
コピペして似たようなクラスを作るって物凄く身に覚えがw
オブジェクト指向って最初は「こんなの使わなくてもゲーム作れるじゃん」って感じでしたけど
使えば使う程この便利さが身に染みて来ますよねw
>>ISLeさん
おっと、僕はその逆のやり方を考えていましたが
そちらのやり方の方がやりやすいのでしょうか?
でもせんちゃさんが少し触れていたように、僕もロジックばかり勉強してきて
オブジェクト指向についても未だに勉強中なんですよね(苦笑)
つまり何が言いたいかと言うと、抽象化とか継承先で再定義とかはまだ僕には難しいです・・・w
コピペして似たようなクラスを作るって物凄く身に覚えがw
オブジェクト指向って最初は「こんなの使わなくてもゲーム作れるじゃん」って感じでしたけど
使えば使う程この便利さが身に染みて来ますよねw
>>ISLeさん
おっと、僕はその逆のやり方を考えていましたが
そちらのやり方の方がやりやすいのでしょうか?
でもせんちゃさんが少し触れていたように、僕もロジックばかり勉強してきて
オブジェクト指向についても未だに勉強中なんですよね(苦笑)
つまり何が言いたいかと言うと、抽象化とか継承先で再定義とかはまだ僕には難しいです・・・w
Re: 最近になってやっと継承の便利さに気付いた
わたしはこちらのほうがやりやすいですね。jay さんが書きました:おっと、僕はその逆のやり方を考えていましたが
そちらのやり方の方がやりやすいのでしょうか?
入力モジュール以外ではキーボードかゲームパッドかマウスかとかまったく意識しなくて済みますから。
ちょっと前にせんちゃさんの日記とか質問掲示板でコントローラモジュールの話があったんですが、掲示板にはサンプルコードを投稿しました。
Javaでクラスの考え方について
これはJavaなんでキーボード入力だけですが、この方法だと、別の周辺機器を組み合わせて使うこと以外にも、コンフィグを複数登録して複数同時に使うとか切り替えるとか、1プレイヤーと2プレイヤーで別の周辺機器を使うとかやる場合でも、コントローラーモジュールですべて吸収するのでゲーム本体のプログラムはまったく影響を受けません。
例えばあとからタッチ操作に対応させたい場合でも、タッチ操作入力モジュールを追加するだけで元からあるプログラムを変更する必要がないわけです。
擬似コントローラー操作と絶対座標を使った操作を切り替えたりすることも入力モジュールだけで完結します。
最後に編集したユーザー ISLe on 2013年5月13日(月) 01:06 [ 編集 2 回目 ]
Re: 最近になってやっと継承の便利さに気付いた
>>ISLeさん
なるほど~
理屈は分かりました、確かにそのやり方は便利ですね~
もう少し継承に対する理解を深めたら、そのやり方を実践してみますね
その時は質問掲示板で相談したりするかもしれませんので、よろしくお願いしますねw
なるほど~
理屈は分かりました、確かにそのやり方は便利ですね~
もう少し継承に対する理解を深めたら、そのやり方を実践してみますね
その時は質問掲示板で相談したりするかもしれませんので、よろしくお願いしますねw