###前提
こんにちは。毎度お世話になっております。友人と協力してつくっているゲームで、迷っていることがあるので質問します。なお質問には、プレイヤーを管理するPlayer
クラス、マップ情報を管理するMapField
クラスが出てきます。
RPGツクールのように、マップチップから作られたマップの上を、キャラクターが移動するゲームを作りたいです。Player
クラスの中の、move(int dx, int dy)
というメソッドの内容でもめています。
###迷っていること
以下の部分のコードで友人から指摘を受けました。
現在の実装では、メインループの中で
java
1// **************** 2 3// dx,dy : キーボード入力 4// nextX, nextY : 進みたい場所 5// player : Playerクラスのインスタンス 6 7boolean hasCollider = map.hasCollider(nextX, nextY); // マップ ( nextX, nextY ) において当たり判定があるか(通れるか通れないか) 8if(!hasCollider){ // 通れたら 9 player.move(dx, dy); // その方向に動く 10} 11// ****************
となっており、if文で通れるか通れないか判断しています。
友人の意見では、if文をとっぱらい、代わりにPlayer
クラスで通れるか通れないか判断したらいいのでは?と言われました。具体的には、Player
クラスに、参照しているマップを格納するMapField
型のメンバを加えます。メインループ側で、player.setMapField(map);
のようにマップ情報を渡せばいいのでは?とのことです。
わたしは、現在の処理のほうがわかりやすいし、Player
クラスにメンバを増やさないのでよいと考えていますが、友人は処理はクラスに任せたほうがいいと考えています。
現在の処理と提案された処理、どちらがより良い設計でしょうか?理由も含めて回答していただけると助かります。
今回は、色々な意見が欲しいので、たくさんの方の意見が欲しいです。よろしくお願いいたします(^-^)
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/23 23:56
2017/05/24 01:14
2017/05/24 03:02