RMVXA

장소 이동 후 카메라가 이상한데로 움직여있습니다.

by TTANG posted Aug 29, 2014
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form

 가로 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)