RMVXA

vx ace 스크립트 간단한 개조 부탁해요

by 히류 posted Oct 15, 2012
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form

ace는 게임화면이 너무 작아서 불편하더군요.

그래서 전체화면 스크립트를 찾다가 일본에서 이걸 발견했는데요

그런데 자동으로 전체화면으로 되는게 아니라 F5를 눌러야만 작동하더군요.

이러면 alt + 엔터 누르는거나 별반 다를게 없잔아요

그래서 게임 실행하면 자동으로 해상도가 변경되도록 할려면 어떻게 해야 할까요?

(참고로 이 스크립트는 기존의 514*416해상도를 1084*768로 변경해주는거에요)

 

--------------------------------------------------------------------------------------------------------------------

#==============================================================================
# ★ RGSS3-Extension
# LNX25_ゲーム画面倍率切替
#  ゲーム中、F5 キーでゲーム画面の表示倍率を切り替えます。
#
#  version   : 1.00 (12/02/27)
#  author    : ももまる
#  reference : http://peachround.blog.fc2.com/blog-entry-20.html
#
#==============================================================================

module LNX25
  #--------------------------------------------------------------------------
  # ● 切替キー
  #--------------------------------------------------------------------------
  RESIZE_KEY = :F5 # 規定値: :F5
end

#==============================================================================
# ■ LNXスクリプト導入情報
#==============================================================================
$lnx_include = {} if $lnx_include == nil
$lnx_include[:lnx25] = 100 # version
p "OK:LNX25_ウィンドウサイズ変更"

#==============================================================================
# ■ Graphics
#==============================================================================
module Graphics
  @screen_zoom = 1
  #--------------------------------------------------------------------------
  # ● ゲーム画面の表示倍率取得
  #--------------------------------------------------------------------------
  def self.screen_zoom
    @screen_zoom
  end
  #--------------------------------------------------------------------------
  # ● ゲーム画面の表示倍率変更
  #--------------------------------------------------------------------------
  def self.screen_zoom=(rate)
    self.rgssplayer_resize(rate)
    @screen_zoom = rate
  end
  #--------------------------------------------------------------------------
  # ● ウィンドウハンドルの取得(Win32API)
  #--------------------------------------------------------------------------
  def self.rgssplayer
    Win32API.new("user32", "FindWindow", "pp", "i").call("RGSS Player", 0)
  end
  #--------------------------------------------------------------------------
  # ● ウィンドウのリサイズ(Win32API)
  #--------------------------------------------------------------------------
  def self.rgssplayer_resize(rate)
    move_w = Win32API.new("user32", "MoveWindow", "liiiil", "l")
    get_sm = Win32API.new("user32", "GetSystemMetrics", "i", "i")
    # サイズ計算
    frame_w   = get_sm.call(7) * 2 # ウィンドウ枠(横方向)
    frame_h   = get_sm.call(8) * 2 # ウィンドウ枠(縦方向)
    caption_h = get_sm.call(4)     # タイトルバーの高さ
    width  = self.width  * rate + frame_w
    height = self.height * rate + frame_h + caption_h
    x = (get_sm.call(0) - width ) / 2
    y = (get_sm.call(1) - height) / 2
    # ウィンドウ位置・サイズ変更(ウィンドウ, X, Y, 幅, 高さ, 更新フラグ)
    move_w.call(self.rgssplayer, x, y, width, height, 1)
  end
end
class << Graphics
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  alias :lnx25_update :update
  def update
    # 元のメソッドを呼ぶ
    lnx25_update
    # F5 キーが押されたらリサイズ
    if Input.trigger?(LNX25::RESIZE_KEY)
      self.screen_zoom = (self.screen_zoom == 1 ? 2 : 1) 
    end
  end
end