Project1
标题: 发现1个超超超超强大的放大脚本,它的算法有无可能改为邻近 [打印本页]
作者: xyzgwx 时间: 2012-3-25 12:06
标题: 发现1个超超超超强大的放大脚本,它的算法有无可能改为邻近
本帖最后由 仲秋启明 于 2012-3-27 16:22 编辑
它用的算法平滑边缘但是有些模糊
无法找到改变方法但判断改变不能或极难也请大胆告知
原画面
F5放大后的画面
希望的画面
- #==============================================================================
- # ★ RGSS3-Extension
- # LNX25_ゲーム画面倍率切替
- # ゲーム中、F5 キーでゲーム画面の表示倍率を切り替えます。
- #
- # version : 1.00 (12/02/27)
- # author : ももまる
- # reference : [url]http://peachround.blog.fc2.com/blog-entry-20.html[/url]
- #
- #==============================================================================
- 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
复制代码