キャラクターをマウスをクリックしたところに誘導したい

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ランダマイズ
記事: 9
登録日時: 9年前
住所: 東京

キャラクターをマウスをクリックしたところに誘導したい

#1

投稿記事 by ランダマイズ » 9年前

今作成中のゲームでプレイヤーのキャラクターをクリックしたところに誘導したいと思い
とりあえずノードを座標上にちりばめ適当にエッジで結びダイクストラ法を用いてあらかじめ最短経路テーブルを作成するサンプルコードを作りました。
経路探索テーブルはこのサイトの記事を参考にしました。
http://www.4gamer.net/games/032/G003263/20121205079/

しかし、冷静になって考えてみるとこの方法では目的のノードには誘導できますが目的の座標には誘導できません。

そこで質問なのですが、作ってしまったサンプルを活かしながら目的の座標に誘導する方法はあるのでしょうか。
あるいは、どのようにすれば目的の座標に誘導させることができるのでしょうか。
また、本題とはそれてしまいますが、サンプルコードの

コード:

getch();
の部分でコマンドプロントの罰ボタンを押すとメモリリークが発生してしまいます。
これはコードがマズイということなのでしょうか...。

最短経路テーブルを作るコード
► スポイラーを表示
C++歴約一年ほど
環境はwin8.1、VisualC++2010Express
です。

(最短経路テーブルを作成しようと考えた理由はA*法を理解するのが思ったよりも難しかったのと
ダイクストラ法の処理コスト?がノードの数が増えるごとに爆発的に増えるという説明にビビったからです。)

アバター
usao
記事: 1892
登録日時: 12年前
連絡を取る:

Re: キャラクターをマウスをクリックしたところに誘導したい

#2

投稿記事 by usao » 9年前

やりたいことがよくわかりませんが…

>目的の座標

な位置にノードを置けばいいのでは?

ランダマイズ
記事: 9
登録日時: 9年前
住所: 東京

Re: キャラクターをマウスをクリックしたところに誘導したい

#3

投稿記事 by ランダマイズ » 9年前

usao様
返信ありがとうございます!
すいません、ノードは後からでも追加できるんですね…
ちゃんと調べてなかったようです。

もう少しいろいろ試してみたいと思います。

アバター
usao
記事: 1892
登録日時: 12年前
連絡を取る:

Re: キャラクターをマウスをクリックしたところに誘導したい

#4

投稿記事 by usao » 9年前

ちょっと話を読み違えていたのかもしれません.
あらかじめ用意したデータを用いて…という話なのですね.

こういうのをやったことないのですが,単純に考えると

世界(?)をいくつかのエリアに分割して,各エリアの代表点をノードだとするようなことを考えると
「エリア内の任意の位置からそのエリアのノードまでの経路というのが簡単に定まる」ようにエリアを切っておくならば,
経路(今の位置 → 今の位置が属するエリアのノード → 目標位置が属するエリアのノード → 目標位置)
は自明ではないのでしょうか.

#そういう話ともちがう?

ランダマイズ
記事: 9
登録日時: 9年前
住所: 東京

Re: キャラクターをマウスをクリックしたところに誘導したい

#5

投稿記事 by ランダマイズ » 9年前

usao様
usao さんが書きました: あらかじめ用意したデータを用いて…という話なのですね.
その通りです!
ただ、各エリアの代表点をノードにするのではなく、マップにノードを張り巡らし
それをもとにしてあらかじめデータを作りたいと考えています。

目的の座標にノードを後から追加できるということなので、あらかじめ用意したデータ
とどうやって組み合わせるかを考えているところです。

今のところ考えているのは最短経路を表したデータのほかに
そのノードに着くまでの移動距離を表したデータも作っておき
それと今いる座標と目的の座標を照らし合わせて最短経路を確定させようかと。
うーん、うまく説明できません、すいません。

(あらかじめ用意したデータを使わないでもいいような気がしてきた...。)

閉鎖

“C言語何でも質問掲示板” へ戻る