VX 스크립트

Screen Resolution Version 0.3 (beta)





▶ mai 섹션 위쪽추 추가해주세요.
WIDTH = 640
HEIGHT = 480
DELTA_WIDTH   = (WIDTH - 544).abs
DELTA_HEIGHT = (HEIGHT - 416).abs

class Spriteset_Map
  def create_viewports
    @viewport1 = Viewport.new(0, 0, WIDTH, HEIGHT)
    @viewport2 = Viewport.new(0, 0, WIDTH, HEIGHT)
    @viewport3 = Viewport.new(0, 0, WIDTH, HEIGHT)
    @viewport2.z = 50
    @viewport3.z = 100
  end
end

class Spriteset_Battle
  def create_viewports
    @viewport1 = Viewport.new(0, 0, WIDTH, HEIGHT)
    @viewport2 = Viewport.new(0, 0, WIDTH, HEIGHT)
    @viewport3 = Viewport.new(0, 0, WIDTH, HEIGHT)
    @viewport2.z = 50
    @viewport3.z = 100
  end
end

class Window_Base < Window
  def x=(x)
    super(x + DELTA_WIDTH / 2)
  end
  
  def y=(y)
    super(y + DELTA_HEIGHT/ 2)
  end
end


class Scene_Battle < Scene_Base
  def create_info_viewport
    @info_viewport = Viewport.new(0, 288, WIDTH, HEIGHT)
    @info_viewport.z = 100
    @status_window = Window_BattleStatus.new
    @party_command_window = Window_PartyCommand.new
    @actor_command_window = Window_ActorCommand.new
    @status_window.viewport = @info_viewport
    @party_command_window.viewport = @info_viewport
    @actor_command_window.viewport = @info_viewport
    @status_window.x = 128
    @actor_command_window.x = 544
    @info_viewport.visible = false
  end
end

class Scene_Item < Scene_Base
   def start
    super
    create_menu_background
    @viewport = Viewport.new(0, 0, WIDTH, HEIGHT)
    @help_window = Window_Help.new
    @help_window.viewport = @viewport
    @item_window = Window_Item.new(0, 56, 544, 360)
    @item_window.help_window = @help_window
    @item_window.active = false
    @target_window = Window_MenuStatus.new(0,  0)
    hide_target_window
  end
  
  def show_target_window(right)
    @item_window.active = false
    width_remain = WIDTH - @target_window.width
    @target_window.x = right ? width_remain : 0
    @target_window.visible = true
    @target_window.active = true
    if right
      @viewport.rect.set(0, 0, width_remain, HEIGHT)
      @viewport.ox = 0
    else
      @viewport.rect.set(@target_window.width, 0, width_remain, HEIGHT)
      @viewport.ox = @target_window.width
    end
  end
  
  def hide_target_window
    @item_window.active = true
    @target_window.visible = false
    @target_window.active = false
    @viewport.rect.set(0, 0, WIDTH, HEIGHT)
    @viewport.ox = 0
  end
end

class Scene_Skill < Scene_Base
  def start
    super
    create_menu_background
    @actor = $game_party.members[@actor_index]
    @viewport = Viewport.new(0, 0, WIDTH, HEIGHT)
    @help_window = Window_Help.new
    @help_window.viewport = @viewport
    @status_window = Window_SkillStatus.new(0, 56, @actor)
    @status_window.viewport = @viewport
    @skill_window = Window_Skill.new(0, 112, 544, 304, @actor)
    @skill_window.viewport = @viewport
    @skill_window.help_window = @help_window
    @target_window = Window_MenuStatus.new(0, 0)
    hide_target_window
  end
  
  def show_target_window(right)
    @skill_window.active = false
    width_remain = WIDTH - @target_window.width
    @target_window.x = right ? width_remain : 0
    @target_window.visible = true
    @target_window.active = true
    if right
      @viewport.rect.set(0, 0, width_remain, HEIGHT)
      @viewport.ox = 0
    else
      @viewport.rect.set(@target_window.width, 0, width_remain, HEIGHT)
      @viewport.ox = @target_window.width
    end
  end

  def hide_target_window
    @skill_window.active = true
    @target_window.visible = false
    @target_window.active = false
    @viewport.rect.set(0, 0, WIDTH, HEIGHT)
    @viewport.ox = 0
  end
end



▶ mail 섹션 제일 위쪽줄에 출가해주세요.
  Graphics.resize_screen(WIDTH, HEIGHT)



Comment '19'
  • ?
    니뽕구루 2008.01.21 15:43

    좋네요. 아시겠지만, 약간 문제가 있습니다.
    처음 시작부분에 그림이 좀 짤린다는거~

  • ?
    다람쥐 2008.01.24 06:43
    그거말고도 못가는선 그다음에 즉
    ---------------------------------------------------
    ㅣ                                                            ㅣ
    ㅣ                                                            ㅣ<---------------ㄱ        이부분이보임
    ㅣ                                                            ㅣ                       ㅣ
    ㅣ                                                            ㅣ                       ㅣ
    ---------------------------------------------------                       ㅣ
    이게 맵이라햇을때                                                       맵끝나는선
  • ?
    오미트론 2008.02.29 18:33
    잘 봤습니다~
  • ?
    넌닝구가좋아 2008.03.21 17:47
    흐흑 해상도 조절이 잘안대
  • ?
    자유소년 2008.04.05 22:07

    얏호! 포켓몬 만들때 최강!

  • ?
    zeromax's joke 2008.05.01 16:25
    문제점도 있지만 좋은 강좌네요
  • ?
    용월 참괴 2008.05.04 22:13
    후 컴퓨터가 바뀐다. 아싸!
     좋은자료 감사합니다^^
  • ?
    zeromax's joke 2008.05.17 22:52
    맵이 작으니까 없는 부분이 늘어나네요...
  • ?
    실마릴 2008.06.13 21:14
    좋은 자료 감사합니다^^
  • profile
    비류 2008.06.22 11:03
    이거640,480이상은 안되는....
  • ?
    백년술사 2009.01.04 14:37
    지금 찾은..ㅡㅜ
  • profile
    카와이 2009.01.12 19:30
    생택지페리망치 ㄲㄲ
  • ?
    루이14세 2009.03.01 14:24
    꽤나 도움이 되는군요. 감사합니다.
  • ?
    음냐~~ 2010.02.12 15:01

    감사합니다. 동영상이 있으니 연습하기 쉬군요^^

  • ?
    류마린 2010.02.22 12:16

    ㅎㅎㅎㅎ

  • ?
    내로미 2010.03.31 01:05

    이거 XP는 없나요..?

  • ?
    탭준이 2011.02.24 18:10

    몰르겟어

  • ?
    투키디데스 2011.04.08 13:03

    1. 일단 주인공스프라이트가 이동하면서 맵을 스크롤할경우 변경된 해상도의 화면의 중앙이 아니라 기존의 544*416해상도를 기준으로 중심을 잡았던 위치에서 화면을 스크롤한다는 점. => 변경된해상도에 따라 화면의 중심을 설정하고 그에 따른 스크롤기준점을 바꿔주어야 함.


    2. 주인공 스프라이트를 맵의 우측끝과 하단 끝부분으로 이동시킬 경우 맵의 경계부근에 다가갈 경우는 스크롤을 중단시키고 주인공스프라이트만 이동해야 하는데 스크롤의 중단시점이 544*416해상도를 기준으로 정지시키기 때문에 그만큼 더 늘어난 화면에서는 계속 스크롤시키는 결과 맵의 좌측 및 상단부분의 보이게 됨. => 변경된 해상도로 화면의 중심인 기준점을 다시 잡고 맵의 한계에 도달했을 경우 새로운 기준점과 맵의 한계를 계산하여 한계점까지 이동할 경우 스크롤을 더이상 하지 못하도록 해야 함.


    3. 팝업(전투 또는 메시지)시 여전히 544*416에 맞추어 화면을 가리게 되어 화면 전체를 차단하지 못함. => 번거롭겠지만 전투나 팝업화면을 직접 바꾸면 되는 문제. 해상도를 변경 스크립트 개발자가 해야 할 문제는 아닐 듯.


    설령 이 문제를 개선하더라도 어차피 일일이 해상도에 맞춰 스크롤 정지구간을 설정하는것은 상당히 까다로워 보이므로 일정한 해상도를 지정(640x480, 800x600, 1024x800등)하여 거기에 맞는 스크립트를 작성해서 세분화 하는게 나을 것으로 보임. 

  • ?
    쿄상 2012.01.09 11:36

    감사합니다~!


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 3 습작 2012.12.24 5408
297 메뉴 몬스터도감 Tankentai사이드뷰에 작동하도록 수정 13 카르와푸딩의아틀리에 2009.05.22 3775
296 기타 스크립트강좌 4 아하!잘봤어요. 2009.05.04 2158
295 이동 및 탈것 대각선 이동 스크립트 17 아방스 2009.05.02 3683
294 이동 및 탈것 A* 알고리즘을 이용한 길찾기 스크립트 3 file 허걱 2009.04.20 3531
293 기타 KGC 리버스 데미지! 28 루시페르 2009.04.13 2979
292 타이틀/게임오버 [자작] 타이틀 화면 없이 게임을 시작하자! Title Skiper 29 케류 2009.04.05 4423
291 기타 [자작] 횡스크롤 점프스크립트 18 file 좀비사냥꾼 2009.04.03 4276
290 키입력 답을 입력하는 텍스트박스 스크립트!! 21 file 좀비사냥꾼 2009.03.29 4206
289 기타 캐릭터 소개화면 16 file 좀비사냥꾼 2009.03.29 6044
288 장비 KGC장비종류 추가 스크립트. 36 file 루시페르 2009.03.28 4674
287 장비 KGC확장장비창 스크립트 15 file 티라엘 2009.03.27 3622
286 상태/속성 어떤 상태일때에만 사용가능한 스킬 14 file 좀비사냥꾼 2009.03.25 3266
285 메뉴 [자작]명성치 사용 시스템(메뉴 출력) 16 Rainsy 2009.03.22 4361
284 기타 시야범위 스크립트 18 file 좀비사냥꾼 2009.03.19 4047
283 메시지 문자픽쳐 표시 스크립트 7 file 좀비사냥꾼 2009.03.19 4144
282 이름입력 한글로 이름 입력하는 스크립트입니다. 55 file 헤르코스 2009.03.18 6662
281 타이틀/게임오버 타이틀화면 커스터마이즈 29 file 可わいい 2009.03.16 6141
280 전투 ORBS [새로운 전투 방식] 48 file 아방스 2009.03.04 10210
279 기타 액터선택지제작 간편화 스크립트 7 Evangelista 2009.02.26 4082
278 이름입력 아이템 이름을 내마음대로 정하자! name_changer 1.0v 26 file Last H 2009.02.25 4067
Board Pagination Prev 1 ... 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ... 32 Next
/ 32