SLG キャラの移動について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
あさか

SLG キャラの移動について

#1

投稿記事 by あさか » 14年前

度々の質問申し訳御座いません。

今回はキャラの移動について。
前回移動範囲を求めるまでは出来、更に目標地点がクリックされた際にどの様にキャラが動いていくか

(寄り道せず無駄なく目的地点までスムーズに動くようにマスを選択、移動していく)
というアルゴリズム自体は考えてあるのですが、肝心のキャラ移動についての知識が全くなくお尋ねした次第です。

キャラの移動とはつまり一マス毎の歩くアニメーションの事です。
これの描画というのは普通どの様に行われているものなのでしょうか?

素人ながら思い付いたものは

①1フレーム毎に画像をズラして描画していく
      ・・・描画関数内にカウンター用の変数を用意してその値によってif文で分け、座標をズラしつつ描画していけば出来なくもなさそうなのですが、圧倒的に非効率的な気がします・・・。
ただこれ専用の関数を作っておけば、画像の差し替えをするだけでどのキャラにも適応可能なのでその点は便利なのかなと。

②元からキャラが一マス歩く動画を用意していてそれを流す。
      ・・・詳しいやり方は思いつきませんが、仮にこれを行った場合キャラ毎の動画を事前に用意しておかなければならず、これも非効率的な気がします。


この二点だけです。
正直どちらも間違っている気がしてなりません。
普通市販のゲームなどのキャラ移動はどのように行われているものなのでしょうか?

non
記事: 1097
登録日時: 15年前

Re: SLG キャラの移動について

#2

投稿記事 by non » 14年前

「旧ゲームプログラミングの館」を参考にしたら如何ですか。
non

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: SLG キャラの移動について

#3

投稿記事 by softya(ソフト屋) » 14年前

一般的には、まず必要な歩行パターンを必要な方向分用意します。
基本的なのは、(1)止まる→(2)右足を前→(1)止まる→(3)左足を前の3パーツで構成されるパターンですね。
「C言語~ゲームプログラミングの館~」
http://dixq.net/g/01.html
ここのは3パターンですが、アニメしやすいように4パーツとなっています。

あとは、このパーツを一定時間ごとにアニメさせつつ、表示座標を移動させてやるだけです。
アニメ周期は、フレーム数でコントロール可能です。つまり一定フレーム数毎に1コマ進めるだけです。
表示座標は、1フレームごとに違和感のない、かつ気持の良い速度で目的地に移動させます。これは速度値自体を持っていればよいでしょう。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

あさか

Re: SLG キャラの移動について

#4

投稿記事 by あさか » 14年前

あぁやはり画像をずらし描写していく方法なのですね。

お二人とも有難う御座いました。
そのように作ります。

閉鎖

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