2012-03-19 18 views
1

私のRPG風のゲームにはランダムな戦闘があります。プレイヤーがランダムバトルに入ったとき、私のゲームがそのバトルで使用したテクスチャ(アニメーションモンスター、アニメーションなど)を読み込む必要があります。テクスチャは非常に多く、むしろ大きくなっています(戦闘は非常にグラフィック集中的です)。テクスチャの読み込み中に画面をアニメーション化する

このようなプロセスは、かなりの時間を消費します。そしてロード中は画面全体がフリーズです。

ゲームのマップがフリーズ、および待機時間は重要である - 私は個人的には迷惑を見つけます。

私はいくつかの数学をやった後、私は実現し、ので、テクスチャをプリロードする余裕がない:私はゲームの開始時にすべてのテクスチャをプリロードした場合、アプリケーションは間違いなくクラッシュします

  • 私はプレイヤーがマップに入ったときに特定のマップで使用されているテクスチャをプリロードした場合、アプリケーションは、同様にクラッシュさせる非常に可能性があります。
  • テクスチャを必要なときにロードして、バトルが終了するとすぐに処分できます。

私はそれが私のゲームのデザインやコンセプトに影響を与えるため、「ロード画面」画像を使用しないことを好むだろう。私はこのアプローチを避けたい。私はテクスチャをロードながら、それは私の質問につながる素晴らしい、だろうアニメーションのいくつかの種類を行うことができれば

:ということは可能ですか?どのようなアニメーション、あなたは尋ねる?さて、ファイナルファンタジーがテクスチャをロードしている間に画面を歪ませていたのを覚えていますか?そんな感じ。しかし、歪みは時間のかかる処理でもありますので、フレームごとのアニメーションや何か素敵なものかもしれません。

これを書いている間、私は(複数のテクスチャがある)テクスチャ間小休止を作ることができ、そしてそのような休止の間、私はアニメーションの状態を表すために画面を更新することに気づきました。しかし、各テクスチャは2048x2048なので、これは起こりそうにないので、アニメーションはかなり遅い(そして迷惑な)レートでリフレッシュされます。私もこれを避けることを好むでしょう。

答えて

0

戦いをランダムにすることになっているので、その戦いが起こる前に、次の戦いのためにテクスチャをプリロードすることは可能でしょうか?その後、ロードが完了するたびに戦闘が開始されます。

  1. ゲームは戦いがまもなく
  2. はランダムな出会いを生成起こるべきことを決定(モンスター/背景の/ etc?)出会い
  3. スタートテクスチャをロードした後の出会いのための
  4. 負荷テクスチャを

戦闘はまだランダムです。戦闘が起こりそうだと気づく前に、遭遇が少し確認されただけです。

+0

でも、私はそのような戦いに必要なテクスチャをロードする必要があります。ゲームが「すぐに戦闘が来る」と判断した場合、テクスチャの読み込みを開始する必要があります。しかし、そうすると、ゲームは凍って遅れるでしょう。さらに悪いことに、プレーヤーはなぜそれが起こっているのか分からないからです。 – Voldemort

+0

@Omega:バックグラウンドスレッドにテクスチャを読み込むことはできませんか? – Coeffect

+0

それは私が知らなかったことです。どうしてそんなの? – Voldemort

0

行われたときにあなたはそれらを最初に低解像度のテクスチャをロードし、バックグラウンドスレッド(と思うNSOperation)に大きなテクスチャの負荷をキックオフし、「スワップ」可能性があります。

アニメーションのために、ゲームの多くは、プレイヤーが遠くにあるとき、小さなテクスチャをロードすることによって開始し、彼らが近づくにつれて、より高解像度のテクスチャが似てバインドで

1

の「フェードイン」するように、私は

を選択しました
  1. すべてのアニメーションテクスチャをgzipped PVRに変換します。負荷時間(デバイスに依存する)は、2倍から4倍に改善されています。PVRへの変換によって引き起こされる任意のアーチファクトは、動きが目立つことはありません。
  2. 私は、スキルを使用しているときや傷ついている場合を除いて、ほとんど常にオンになっています。私は戦闘シーンのフェードイン中にこれを行います。フェードインは自分で50msのティックレートでコントロールします。すべてのフレーム私はアイドルの1つのプリロードを起動します(最大8つあり、20ミリ秒かかります)。
  3. 私は、戦い全体を前もって計算する「エンゲージメント」クラスを持っています。アニメーションは、私はそれをアンロード、アン必要になります。また、「傷つける」アニメーション中に、私は次のスキルのアニメーションをプリフェッチ。楽しいの

負荷。あなたのゲームと運のベスト。

ps。実際の応答時間については、シミュレータを信頼してはいけません。デバイスにすばやくアクセスして、実際にパフォーマンスの問題があるかどうかを判断します。

pps。ポイント1について、私のアプリの大幅なサイズ縮小を引き起こした。

関連する問題