Olá pessoal, trago a vocês esse script de Autor desconhecido, esbarrei com esse script pelos github da vida e decidi testar e funcionou.
O que ele faz?
Resolve o problema de bordas pretas sem preenchimento do tileset ou mapa por inteiro em monitores Widescreen.
Vá até o Modulo Configs e no final dele adicione:
Cole Acima do Main e abaixo de todos os Scripts.
A Imagem fica cheia e não fica esticada ou distorcida.
O que ele faz?
Resolve o problema de bordas pretas sem preenchimento do tileset ou mapa por inteiro em monitores Widescreen.
Vá até o Modulo Configs e no final dele adicione:
- Código:
# Compatibilidade Widescreen
Widscreen = true # false
Cole Acima do Main e abaixo de todos os Scripts.
- Código:
if Configs::Widscreen == true
# doorstuck adjustable fullscreen script
CreateWindowEx = Win32API.new('user32' , 'CreateWindowEx' , 'ippiiiiiiiii', 'i')
GetDC = Win32API.new('user32' , 'GetDC' , 'i' , 'i')
GetSystemMetrics = Win32API.new('user32' , 'GetSystemMetrics' , 'i' , 'i')
FillRect = Win32API.new('user32' , 'FillRect' , 'ipi' , 'i')
FindWindow = Win32API.new('user32' , 'FindWindow' , 'pp' , 'i')
ReleaseDC = Win32API.new('user32' , 'ReleaseDC' , 'ii' , 'i')
SetWindowLong = Win32API.new('user32' , 'SetWindowLong' , 'iii' , 'i')
SetWindowPos = Win32API.new('user32' , 'SetWindowPos' , 'iiiiiii' , 'i')
ShowWindow = Win32API.new('user32' , 'ShowWindow' , 'ii' , 'i')
UpdateWindow = Win32API.new('user32' , 'UpdateWindow' , 'i' , 'i')
CreateSolidBrush = Win32API.new('gdi32' , 'CreateSolidBrush' , 'i' , 'i')
DeleteObject = Win32API.new('gdi32' , 'DeleteObject' , 'i' , 'i')
screenRect = Rect.new(0, 0, GetSystemMetrics.call(0), GetSystemMetrics.call(1))
#universal constant
rpgMakerX = 720#640
#height that we would render if rpg maker would render non 32 tiles
wishfulY = rpgMakerX * screenRect.height / screenRect.width
#divide by 32 and multiply by 32 to get the actual number of pixels that
#could be rendered by RPG maker without glitches
rpgMakerY = (wishfulY / 16) * 16 #Default (wishfulY / 32) * 32
rpgMakerRaimander = wishfulY - rpgMakerY
Graphics.resize_screen(rpgMakerX, rpgMakerY)
#now we need to calculate the actual screen margin from top and bottom
actualScreenMargin = screenRect.height * rpgMakerRaimander / wishfulY
mainHeight = screenRect.height - actualScreenMargin
upperMargin = actualScreenMargin / 2
#draw black background on all the screen
BackgroundHandler = CreateWindowEx.call(0x08000008, 'Static', '', 0x80000000, 0, 0, 0, 0, 0, 0, 0, 0)
ShowWindow.call(BackgroundHandler, 3)
UpdateWindow.call(BackgroundHandler)
dc = GetDC.call(BackgroundHandler)
rect = [0, 0, screenRect.width, screenRect.height].pack('l4')
brush = CreateSolidBrush.call(0)
FillRect.call(dc, rect, brush)
ReleaseDC.call(BackgroundHandler, dc)
DeleteObject.call(brush)
mainWindowHandler = FindWindow.call('RGSS Player', 0)
SetWindowLong.call(mainWindowHandler, -16, 0x14000000)
SetWindowPos.call(mainWindowHandler, -1, 0, upperMargin, screenRect.width, mainHeight, 0)
end
A Imagem fica cheia e não fica esticada ou distorcida.