fc2ブログ

移動完了までウェイト

イベント作ってる時にたまに困るのが、文章をちゃんと読みながら実行した時と、ボタン連打でスキップした時とで、キャラクターの位置が変わってしまうことです。

原因は前の「移動ルート設定」の実行が終わる前に、次の「移動ルート設定」が実行されて、前のが上書きされてしまうことです。
「アクイトアイ」ではキャラがちょこちょこ動く上に、文章スキップ機能も付いているのでよく悩まされました。

「移動ルートの設定」には「移動が終わるまでウェイト」というのもありますが、これだと会話文表示しながら動かすということができません。

ようするに、XPでいうところの「移動完了までウェイト」が欲しいんです。

というわけで作ってみました。


class Game_Interpreter
  #--------------------------------------------------------------------------
  # ● 移動ルート強制中の間ウェイト
  #--------------------------------------------------------------------------
  def wait_for_forcing
    Fiber.yield while $game_player.move_route_forcing
    Fiber.yield while $game_map.events.any? {|*,ev| ev.move_route_forcing }
  end
end


スクリプトは以上。メソッド名は適当です。
後はこの wait_for_forcing を、イベントコマンドのスクリプトに書くだけです。

移動ルートを実行中のイベントがひとつもない場合は、1フレームもウェイトしません。
安心して適度に挟んでおきましょう。

20130321b.jpg

こんな感じで使えばOK!



そして話はかわりますが・・・


なんか一生懸命やってたものが完成しちゃうと、何やっていいのかわからなくなりますね。

やることなんて山ほどあるんだけど。

「アクイトアイ」についてはまあこんなもんでしょう。
冷静にやり直してみると欠点ばかりが見つかります。
作ってたときはあんなに楽しかったのに・・・


そしてちょっと思いつきでスクリプトで遊んでみたり。
それがこちら
20130321a.jpg
わかるでしょうか?
999人まで隊列組めるスクリプトなんての作ってみました。

最初、普通に数だけ増やしたらfpsが1桁になったので、とにかく余計な機能削ってなんとか60フレームにまで軽量化しました。

そこで気づいたのですが、キャラクターのスプライトって250位を超えると重くなってきますね。
256以上にすると処理が変わるとかあるんでしょうか?
それともうちのパソコンだけかな。

画面の大きさが17タイル×13タイルなので221タイル表示されることになります。
移動すること考えると、18タイル×14タイルで252タイル
なのでキャラクターは埋め尽くしても252体。
もしかして、こういうのも計算されて、この画面サイズになってたりするのかな。

なんて深読みしてみたり。

そして、このスクリプト使ってまたなんか作れないかなあなんて考えてたり。

ちなみに仲間を通り抜けられないようにしたら、30人超えたあたりからダッシュ移動できなくなりました。
1歩でも踏み間違えたら詰みますw
50人でもそうとう動きづらいです。
999人とかまともに歩けないでしょうね・・・

スポンサーサイト



2013-03-21 : スクリプト小ネタ : コメント : 0 : トラックバック : 0 :
コメントの投稿
非公開コメント

« next  ホーム  prev »

プロフィール

木星ペンギン

Author:木星ペンギン
ほぼツクールのことばかり書いてます。
名前は↑から取りました。
木製ですが木星です。
トカゲは関係ありません。

ゲーム

  • 箱庭の勇者たち(体験版)
  • ぼくらの大革命!
  • 走ってぶつかるゲーム
  • ビート☆サムライ

メールフォーム

wood_penguin@yahoo.co.jp

名前:
メール:
件名:
本文:

月別アーカイブ

広告

寄付(Donate)