가로 40, 세로 15짜리 맵(복도)을 사용하는데요.
이 복도에서 각각의 방으로 들어갔다 나오면(방에서 해당 장소에 닿으면 장소이동을이용해 문 이벤트 바로 앞에 나오도록 만들어두었습니다.)
왼쪽 두개의 방과 가장 오른쪽 방 한개를 제외하고는 카메라가 모두 제일 오른쪽에 닿게 설정됩니다.
여기뿐만 아니라 맵이 큰 경우에는 카메라가 계속 오른쪽 아래를 기준으로 저장이 되네요 ㅠㅠ
처음엔 괜찮은데 저장을 했다가 불러오는 경우에는 카메라가 오른쪽 아래로 고정이 됩니다.
현재 화면을 제어하는 스크립트로는 Resize RMVX by Leon_Westbrooke - v. 1.1 를 사용중인데요
스크립트를 읽어보긴 했지만 저기서 256이라는 숫자가 왜 나오는건지를 알 수가 없네요...ㅠㅠㅠㅠㅠㅠㅠㅠㅠ
도움부탁드립니다 ㅠㅠ....
CENTER_X = (RESIZE::WIDTH / 2 - 16) * 8
CENTER_Y = (RESIZE::HEIGHT / 2 - 16) * 8
CENTER_X와 CENTER_Y 는 저렇게 지정되어있어요!
#--------------------------------------------------------------------------
# * Set Map Display Position to Center of Screen
# x : x-coordinate
# y : y-coordinate
#--------------------------------------------------------------------------
def center(x, y)
display_x = x * 256 - CENTER_X # Calculate coordinates
unless $game_map.loop_horizontal? # No loop horizontally?
max_x = ($game_map.width - (RESIZE::WIDTH / 32)) * 256 # Calculate max value
display_x = [0, [display_x, max_x].min].max # Adjust coordinates
end
display_y = y * 256 - CENTER_Y # Calculate coordinates
unless $game_map.loop_vertical? # No loop vertically?
max_y = ($game_map.height - (RESIZE::HEIGHT / 32)) * 256 # Calculate max value
display_y = [0, [display_y, max_y].min].max # Adjust coordinates
end
$game_map.set_display_pos(display_x, display_y) # Change map location
end
end
#-------------------------------------------------------------------------------
# END Game_Player class
#-------------------------------------------------------------------------------
class Game_Map
def setup_scroll
@scroll_direction = 2
@scroll_rest = 0
@scroll_speed = 4
@margin_x = (width - (RESIZE::WIDTH / 32)) * 256 / 2 # Screen non-display width /2
@margin_y = (height - (RESIZE::HEIGHT / 32)) * 256 / 2 # Screen non-display height /2
end
#--------------------------------------------------------------------------
# * Scroll Down
# distance : scroll distance
#--------------------------------------------------------------------------
def scroll_down(distance)
if loop_vertical?
@display_y += distance
@display_y %= @map.height * 256
@parallax_y += distance
else
last_y = @display_y
@display_y = [@display_y + distance,
(height - (RESIZE::HEIGHT/32))].min
@parallax_y += @display_y - last_y
end
end
#--------------------------------------------------------------------------
# * Scroll Right
# distance : scroll distance
#--------------------------------------------------------------------------
def scroll_right(distance)
if loop_horizontal?
@display_x += distance
@display_x %= @map.width * 256
@parallax_x += distance
else
last_x = @display_x
@display_x = [@display_x + distance,
(width - (RESIZE::WIDTH / 32))].min
@parallax_x += @display_x - last_x
end
end
end
#-------------------------------------------------------------------------------
# Resizes game.
#-------------------------------------------------------------------------------
Graphics.resize_screen(RESIZE::WIDTH, RESIZE::HEIGHT)