だから、公開もしていないプログラミングのネタを書いてどーするんだと…一人つっこみ
この土日にちょっといじりました。
昨日書いたアルゴリズムの実装。
意外に楽でしたね。
そのアルゴリズムに自力で到達することはありえなさそうですが、アルゴリズムさえ教えてもらえれば、プログラミングするのは楽だった。
というか、Delphiのソースが載ってるから、なんとなく読み取って、C++似のSystem4に変換するだけのことだし。
デバッグでちょっとだけバグでましたけどね。
1.射程3にしたらこんな形になったorz
原因は、「一度到達したマスであったら、そこから思考するのは無意味なので思考停止」という条件文
つまり、下の図の矢印の順で思考したために、改めてスタート地点から横に伸ばそうとしたとき、「あ、ココはチェック済みだからもう伸ばさなくていいね」という思考をしてしまっていたせい。
だから、「チェック済みなら思考停止」ではなく、「既に最短距離で到達しているなら思考停止」にした。
上の例の場合、左のマスに矢印ルートでは3マスかかってる。すぐに横に行こうとしたら1マスで到達している。だから、思考継続となる。
そうすることで、ダイヤ型の範囲表示ができるようになった。
2.4マス以上の射程にすると、現在地(中心・射程0)も射程内に入ってしまう…orz
これは、
という感じで元の位置も探索対称になってしまっているため。
これは綺麗な解決の仕方思いつかなかったので、思考全て終了後に、現在地を除外するという命令追加で回避した。
現在地は対象にしないという条件追加するよりも、後で取り除いた方が楽だと思うからね。
んで、ちょっと画面表示の画像処理ルーチンも変更して、ままにょにょであるように、その射程内にマウスのポインタもって行ったらそのマスの色が変わるようにした。
さて、いよいよ攻撃の実装だろうか。
射程内でのクリックを読み取り、そのマスに敵がいるかどうかを判別して、いたら攻撃処理。いなければ無視。
射程外をクリックしても無視。
右クリックで攻撃選択モードキャンセルは実装済み。
後、音の実装もしないと。
多少音楽の知識はあるが、作曲は知識やらセンスとかないので、フリーの音楽拾ってくるか、アリスソフトの素材(ランスシリーズの曲そのまんまw)を使うかだな。
効果音も拾ってくるしかない。
ま、自分でそういうサイト探すの案外大変だけど、某同人ゲームが使っている素材やさんリストから、気に入ったサイトさんのを利用させてもらうとしようw
しかし、開発に時間かかってるな~w
3月にまとめて時間取れたら一気に進むんだろうか??
それとも、時間取れてもゲーム作る方じゃなく、遊ぶ方に没頭するかな…w
それとも、そもそもそんな時間取れないか…
ま、ここ忙しい中で久しぶりにのんびりした土日でしたよと。
この土日にちょっといじりました。
昨日書いたアルゴリズムの実装。
意外に楽でしたね。
そのアルゴリズムに自力で到達することはありえなさそうですが、アルゴリズムさえ教えてもらえれば、プログラミングするのは楽だった。
というか、Delphiのソースが載ってるから、なんとなく読み取って、C++似のSystem4に変換するだけのことだし。
デバッグでちょっとだけバグでましたけどね。
1.射程3にしたらこんな形になったorz
□ | ||||||
□ | □ | □ | ||||
□ | □ | □ | □ | □ | ||
□ | ○ | □ | ||||
□ | □ | □ | □ | □ | ||
□ | □ | □ | ||||
□ | ||||||
原因は、「一度到達したマスであったら、そこから思考するのは無意味なので思考停止」という条件文
つまり、下の図の矢印の順で思考したために、改めてスタート地点から横に伸ばそうとしたとき、「あ、ココはチェック済みだからもう伸ばさなくていいね」という思考をしてしまっていたせい。
□ | ||||||
□ | □ | □ | ||||
□ | ← | ↑ | □ | □ | ||
↓ | ○ | □ | ||||
□ | □ | □ | □ | □ | ||
□ | □ | □ | ||||
□ | ||||||
だから、「チェック済みなら思考停止」ではなく、「既に最短距離で到達しているなら思考停止」にした。
上の例の場合、左のマスに矢印ルートでは3マスかかってる。すぐに横に行こうとしたら1マスで到達している。だから、思考継続となる。
そうすることで、ダイヤ型の範囲表示ができるようになった。
2.4マス以上の射程にすると、現在地(中心・射程0)も射程内に入ってしまう…orz
これは、
← | ↑ |
↓ | → |
という感じで元の位置も探索対称になってしまっているため。
これは綺麗な解決の仕方思いつかなかったので、思考全て終了後に、現在地を除外するという命令追加で回避した。
現在地は対象にしないという条件追加するよりも、後で取り除いた方が楽だと思うからね。
んで、ちょっと画面表示の画像処理ルーチンも変更して、ままにょにょであるように、その射程内にマウスのポインタもって行ったらそのマスの色が変わるようにした。
さて、いよいよ攻撃の実装だろうか。
射程内でのクリックを読み取り、そのマスに敵がいるかどうかを判別して、いたら攻撃処理。いなければ無視。
射程外をクリックしても無視。
右クリックで攻撃選択モードキャンセルは実装済み。
後、音の実装もしないと。
多少音楽の知識はあるが、作曲は知識やらセンスとかないので、フリーの音楽拾ってくるか、アリスソフトの素材(ランスシリーズの曲そのまんまw)を使うかだな。
効果音も拾ってくるしかない。
ま、自分でそういうサイト探すの案外大変だけど、某同人ゲームが使っている素材やさんリストから、気に入ったサイトさんのを利用させてもらうとしようw
しかし、開発に時間かかってるな~w
3月にまとめて時間取れたら一気に進むんだろうか??
それとも、時間取れてもゲーム作る方じゃなく、遊ぶ方に没頭するかな…w
それとも、そもそもそんな時間取れないか…
ま、ここ忙しい中で久しぶりにのんびりした土日でしたよと。