キャラクターの移動速度が

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

キャラクターの移動速度が

#1

投稿記事 by s-rush » 16年前

いつもお世話になっています。
先日の勉強会・懇親会お疲れ様でした。

貴重なお話を聞かせていただいた後、無性にゲーム作りを進めたくなって、
製作を進めたのですが、キャラクターの動きが急に遅くなってしまいました。

この現象が起きたのはマップを少し大きくした後です。
まだ全体のマップも完成しておらず、(4分の1くらい?)
このままマップを大きくしていくと、キャラの移動速度が
極端に遅くなってしまうのではないかと心配しています。

プロジェクトごとアップさせていただきますので、少し見てもらえないでしょうか?


[新バージョン]
http://down11.ddo.jp/uploader/download/ ... /data1.zip
pass
[pokemon]
マップの1部は未完全ですが、気にしないでください。

マップを入れ替える前の物もアップしておきます。
移動速度の比較ができるんじゃないかと思います。
こちらの方は少しバグが残っていますが、音が鳴らないだけなので
支障はないと思います。

[旧バージョン]
http://down11.ddo.jp/uploader/download/ ... h/data.zip
pass
[poke]


開発環境はおなじみのVC++2008 EEです。

よろしくお願いします。

Mist

Re:キャラクターの移動速度が

#2

投稿記事 by Mist » 16年前

graf.cppの39行目からの「フィールド描画」の描画で、「画面外は描画しない処理※1」とコメントしているけど未実装のようですね。
全部描画しているからマップ広げたら遅くなったんじゃないでしょうか。

s-rush

Re:キャラクターの移動速度が

#3

投稿記事 by s-rush » 16年前

>>「画面外は描画しない処理※1」とコメントしているけど未実装のようですね。
どのような処理というかアルゴリズムが思い浮かばなかったので^^;

どのような感じで実装すればよろしいのでしょうか?
自分の位置を中心にY方向±10、X方向に±8の範囲を描画する
という感じでいいのでしょうか?

Mist

Re:キャラクターの移動速度が

#4

投稿記事 by Mist » 16年前

> 自分の位置を中心にY方向±10、X方向に±8の範囲を描画する

まぁ、そういう方法でもいいと思いますけどちょっと計算すればそのマップチップが表示される範囲に含まれているかどうかはすぐにわかると思いますよ。

こういうのは自分で考えられるのが一番と思います。
一応、以下に私のやり方書いておきますのでどうしても思いつかない場合に見てください。
(以下の数行をマウスでドラッグすると見ることができます)

マップチップの一つの大きさが32*32ですから、あるマップチップが画面に表示されるかどうかは描画座標が以下の条件を満たしている場合になります。
-32 < 描画X座標 < 表示領域のX方向サイズ(640)
-32 < 描画Y座標 < 表示領域のY方向サイズ(480)

s-rush

Re:キャラクターの移動速度が

#5

投稿記事 by s-rush » 16年前

>Mistさん
ありがとうございます。
しばらくドラッグは我慢して、少し考えてみます。

s-rush

Re:キャラクターの移動速度が

#6

投稿記事 by s-rush » 16年前

Mistさん、ご回答ありがとうございました。
おかげで解決することができました^^

ちなみに、ドラッグするとこなく解決したのですが、
私がはじめに定義した(?)描画範囲が違っていました^^;

-32 < 描画X座標 < 表示領域のX方向サイズ(640)+32
で考えていました・・・

ここんところを参考にさせていただいて修正しましたけど。

閉鎖

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