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
577 풍선대화 메세지시스템 32 file RPGbooster 2008.10.11 6126
576 맵/타일 월드맵 스크립트 49 아방스 2008.09.07 6123
575 기타 게임시간&밤낮 54 file 허걱 2009.02.14 6111
574 몬스터 도감 [수정] 68 file RPGbooster 2008.10.08 6076
573 퀘스트 디아블로 스타일 퀘스트 시스템(번역) 38 file 훈덕 2009.02.03 6049
572 기타 캐릭터 소개화면 16 file 좀비사냥꾼 2009.03.29 6044
571 스킬 합성샾 스크립트 ^^ [동영상 포함] 6 file 아방스 2008.09.23 6038
570 전투 포켓몬 스크립트 한글화 완료 26 file 서울냥이 2010.10.11 6030
569 파티 대규모파티 KGC스크립 50 file RPGbooster 2008.10.08 6012
568 기타 작은 게이지바 표시 스크립트 44 file 허걱 2009.02.05 5979
567 메시지 대화창효과 8 078656577er 2009.10.20 5973
566 전투 ActBattle 전투 스크립트 13 file 사람이라면? 2010.08.16 5962
565 메뉴 창 크기 변경 스크립트 6 file Incubus 2008.05.25 5945
564 기타 빛 이펙트 71 file DEVIL<Li Patanis Roni Kraudus> 2008.06.06 5861
563 전투 지형에 따른 전투배경화면 표시 스크립트!! 30 file 레오 2008.09.17 5855
562 체력 게이지바 스크립트 30 아방스 2008.09.01 5829
561 액알 스크립트 33 츠키아 2008.08.11 5828
560 이동 및 탈것 3D 던젼 스크립트 38 아방스 2010.12.06 5775
559 스킬 무기 업그레이드 시스템 27 file 담먹캐 2009.11.01 5757
558 타이틀/게임오버 RPG VX - 타이틀 스크린 스크립트 23 아방스 2008.01.24 5744
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