#============================================================================== # ■ 画面座標を整数値に補正 (VX Ace用) #------------------------------------------------------------------------------ # 製作者 : CanariAlternate # サイト名 : カルトの鳥篭 # サイトURL : http://canarialt.blog.fc2.com #------------------------------------------------------------------------------ # ■ 概要 : 画面をスクロールした時にイベントの表示が1ドットぶれるのを防止する。 # # ■ 必須 : なし # # ■ 位置 : 「Game_Map」より下 #------------------------------------------------------------------------------ # 更新履歴 : 2012/10/20 Ver1.00 スクリプトを作成した。 # 2013/02/19 Ver1.01 共通処理スクリプトの廃止による変更を施した。 #============================================================================== $imported ||= {} $imported[:CanariAlternate_CorrectionDisplay] = true #============================================================================== # ■ Game_Map #------------------------------------------------------------------------------ #  マップを扱うクラスです。スクロールや通行可能判定などの機能を持っています。 # このクラスのインスタンスは $game_map で参照されます。 #============================================================================== class Game_Map #-------------------------------------------------------------------------- # ● 表示座標を補正 [新規] #-------------------------------------------------------------------------- def correction_display(coordinate) return (coordinate * 32).round / 32.0 end #-------------------------------------------------------------------------- # ● 表示座標を差し引いた X 座標の計算 [追加] #-------------------------------------------------------------------------- alias adjust_x_CorrectionDisplay adjust_x def adjust_x(x) adjust_x_CorrectionDisplay(correction_display(x)) end #-------------------------------------------------------------------------- # ● 表示座標を差し引いた Y 座標の計算 [追加] #-------------------------------------------------------------------------- alias adjust_y_CorrectionDisplay adjust_y def adjust_y(y) adjust_y_CorrectionDisplay(correction_display(y)) end #-------------------------------------------------------------------------- # ● 表示位置の設定 [追加] #-------------------------------------------------------------------------- alias set_display_pos_CorrectionDisplay set_display_pos def set_display_pos(x, y) set_display_pos_CorrectionDisplay(correction_display(x), correction_display(y)) # 表示座標を修正 end #-------------------------------------------------------------------------- # ● スクロールの更新 [◆再定義] #-------------------------------------------------------------------------- def update_scroll return unless scrolling? last_x = @display_x last_y = @display_y distance = [scroll_distance, @scroll_rest].min # スクロール距離を補正 do_scroll(@scroll_direction, distance) if @display_x == last_x && @display_y == last_y @scroll_rest = 0 else @scroll_rest -= distance end end end