#==============================================================================
# ■ 画面座標を整数値に補正 (VX Ace用)
#------------------------------------------------------------------------------
# 製作者 : CanariAlternate
# サイト名 : カルトの鳥篭
# サイトURL : [url]http://canarialt.blog.fc2.com[/url]
#------------------------------------------------------------------------------
# ■ 概要 : 画面をスクロールした時にイベントの表示が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