VX 스크립트

Source Thread: http://www.hbgames.org/forums/viewtopic.php?f=11&t=76084

  전체화면 스크립트입니다.  어떻게 되는지는 직접 스크립트를 넣고 실행시켜 보세요.  전체화면 키는 F5.


# Fullscreen++ v1.0 by Zeus81
# Description :
#   New fullscreen mode that is more smart and make a better use of the screen surface (no black frame).
#   Alt+Enter still use the old fullscreen mode, to use the new one press F5.
#   To make the game start automatically in fullscreen mode, see line 12.
# Functions :
#   Graphics.fullscreen?       : return the fullscreen state.
#   Graphics.fullscreen_mode   : go to fullscreen mode.
#   Graphics.windowed_mode     : go to windowed mode.
#   Graphics.toggle_fullscreen : toggle from one to the other.
class << Graphics
  fullscreen_start = false
  
  FindWindow       = Win32API.new('user32', 'FindWindow'      , 'pp'          , 'l')
  CreateWindowEx   = Win32API.new('user32', 'CreateWindowEx'  , 'lpplllllllll', 'l')
  UpdateWindow     = Win32API.new('user32', 'UpdateWindow'    , 'l'           , 'l')
  ShowWindow       = Win32API.new('user32', 'ShowWindow'      , 'll'          , 'l')
  SetWindowLong    = Win32API.new('user32', 'SetWindowLong'   , 'lll'         , 'l')
  SetWindowPos     = Win32API.new('user32', 'SetWindowPos'    , 'lllllll'     , 'l')
  GetSystemMetrics = Win32API.new('user32', 'GetSystemMetrics', 'l'           , 'l')
  GetDC            = Win32API.new('user32', 'GetDC'           , 'l'           , 'l')
  FillRect         = Win32API.new('user32', 'FillRect'        , 'lpl'         , 'l')
  CreateSolidBrush = Win32API.new('gdi32' , 'CreateSolidBrush', 'l'           , 'l')
  if first_start = !method_defined?(:zeus81_fullscreen_update)
    @@MainWindow = FindWindow.call('RGSS Player', 0)
    @@BackWindow = CreateWindowEx.call(0x08000008, 'Static', '', 0x80000000, 0, 0, 0, 0, 0, 0, 0, 0)
    @@FillRectArgs = [GetDC.call(@@BackWindow), [0,0,0xFFFF,0xFFFF].pack('L4'), CreateSolidBrush.call(0)]
    @@fullscreen = false
    alias zeus81_fullscreen_resize_screen resize_screen
    alias zeus81_fullscreen_update        update
  end
  def update
    zeus81_fullscreen_update
    toggle_fullscreen if Input.trigger?(Input::F5)
  end
  def resize_screen(width, height)
    zeus81_fullscreen_resize_screen(width, height)
    fullscreen_mode if fullscreen?
  end
  def fullscreen?() @@fullscreen end
  def toggle_fullscreen() fullscreen? ? windowed_mode : fullscreen_mode end
  def fullscreen_mode
    client_w, client_h = GetSystemMetrics.call(0), GetSystemMetrics.call(1)
    w, h = client_w, client_w * height / width
    h, w = client_h, client_h * width / height if h > client_h
    ShowWindow.call(@@BackWindow, 3)
    UpdateWindow.call(@@BackWindow)
    FillRect.call(*@@FillRectArgs)
    SetWindowPos.call(@@MainWindow, -1, (client_w-w)/2, (client_h-h)/2, w, h, 0)
    SetWindowLong.call(@@MainWindow, -16, 0x14000000)
    @@fullscreen = true
  end
  def windowed_mode
    client_w, client_h = GetSystemMetrics.call(0), GetSystemMetrics.call(1)
    w = width + GetSystemMetrics.call(5)*2 + 4
    h = height + GetSystemMetrics.call(6)*2 + 4 + GetSystemMetrics.call(4)
    ShowWindow.call(@@BackWindow, 0)
    SetWindowPos.call(@@MainWindow, -2, (client_w-w)/2, (client_h-h)/2, w, h, 0)
    SetWindowLong.call(@@MainWindow, -16, 0x14CA0000)
    @@fullscreen = false
  end
  Graphics.fullscreen_mode if first_start and fullscreen_start
end


**이 스크립트는 동영상 재생 스크립트나 스크린샷 스크립트 등과 호환되지 않을 수 있습니다.

Comment '2'
  • ?
    MinaAubert 2012.09.19 14:17
    감사히 쓰겠습니다 ^^
  • ?
    비형 2015.07.15 11:02
    혹시 전체화면 시 좌우에 검정색 여백 없애는 방법 좀 알 수 있을까요?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 3 습작 2012.12.24 5408
597 기타 Base Project 15 아방스 2009.02.05 3063
596 메뉴 CogWheel Style Menu Bars 6 아방스 2008.03.09 2777
595 메뉴 CogWheelBars 시스템. 13 file 할렘 2009.02.20 4362
594 전투 Crissaegrim ABS 2.0.5 최신 48 file RPGbooster 2008.10.08 8768
593 기타 Crissaegrim Farm BETA 1.0.0 10 Man... 2008.11.22 3094
592 HUD Crissaegrim HUD 2.0!! 13 Man... 2008.10.29 2852
591 Crissaegrim SBABS BETA 1.0 12 file 21stcentury 2008.10.08 2543
590 기타 Crissaegrim 농장시스템 한글화 28 file 도심 2009.12.22 3606
589 버그픽스 DerVVulfman's Tileset Reader VX Bug Fix 습작 2014.11.16 701
588 Detailed Call Script Error Mesage 3 Man... 2008.10.28 1258
587 Direction Movement Style 4 Man... 2008.10.28 1719
586 메시지 Display Flipped Picture 스크립트 11 Love♡ 2009.11.09 3585
585 장비 Disposable Ammo(또 있는 곳을 잘 읽으셔야 합니다.) 2 Man... 2008.10.29 1696
584 스킬 DQ특기풍스킬 - KGC 4 카르와푸딩의아틀리에 2009.08.19 3288
583 기타 Drop Options 1.1 by Modern Algebra 4 Alkaid 2010.09.16 1509
582 Enable Usage of Rmxp 캐릭터(?) 5 Man... 2008.10.28 2413
581 장비 Equipment Constraints 2.5b by Modern Algebra 3 Alkaid 2010.09.17 2001
580 장비 Equipment Set Bonus 6 Man... 2008.10.25 1849
579 ES Character Info 6 file RPGbooster 2008.10.08 1824
578 메시지 Etude87 Dialogue History Scene file 습작 2014.07.07 1069
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 32 Next
/ 32