RPGXP 스크립트
2013.10.01 06:28

화면의 쉐이크를 더 어지럽게 바꿔보자!

조회 수 986 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
#==============================================================================
# ■ Spriteset_Map
#------------------------------------------------------------------------------
#  맵 화면의 스프라이트나 타일 맵등을 정리한 클래스입니다.이 클래스는
# Scene_Map 클래스의 내부에서 사용됩니다.
#==============================================================================

class Spriteset_Map
  #--------------------------------------------------------------------------
  # ● 오브젝트 초기화
  #--------------------------------------------------------------------------
  def initialize
    # 뷰포트를 작성
    @viewport1 = Viewport.new(0, 0, 640, 480)
    @viewport2 = Viewport.new(0, 0, 640, 480)
    @viewport3 = Viewport.new(0, 0, 640, 480)
    @viewport2.z = 200
    @viewport3.z = 5000
    # 타일 맵을 작성
    @tilemap = Tilemap.new(@viewport1)
    @tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name)
    for i in 0..6
      autotile_name = $game_map.autotile_names[i]
      @tilemap.autotiles[i] = RPG::Cache.autotile(autotile_name)
    end
    @tilemap.map_data = $game_map.data
    @tilemap.priorities = $game_map.priorities
    # 파노라마 프레인을 작성
    @panorama = Plane.new(@viewport1)
    @panorama.z = -1000
    # 포그 프레인을 작성
    @fog = Plane.new(@viewport1)
    @fog.z = 3000
    # 캐릭터 스프라이트를 작성
    @character_sprites = []
    for i in $game_map.events.keys.sort
      sprite = Sprite_Character.new(@viewport1, $game_map.events[i])
      @character_sprites.push(sprite)
    end
    @character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
    # 기후를 작성
    @weather = RPG::Weather.new(@viewport1)
    # 픽쳐를 작성
    @picture_sprites = []
    for i in 1..50
      @picture_sprites.push(Sprite_Picture.new(@viewport2,
        $game_screen.pictures[i]))
    end
    # 타이머 스프라이트를 작성
    @timer_sprite = Sprite_Timer.new
    # 프레임 갱신
    update
  end
  #--------------------------------------------------------------------------
  # ● 해방
  #--------------------------------------------------------------------------
  def dispose
    # 타일 맵을 해방
    @tilemap.tileset.dispose
    for i in 0..6
      @tilemap.autotiles[i].dispose
    end
    @tilemap.dispose
    # 파노라마 프레인을 해방
    @panorama.dispose
    # 포그 프레인을 해방
    @fog.dispose
    # 캐릭터 스프라이트를 해방
    for sprite in @character_sprites
      sprite.dispose
    end
    # 기후를 해방
    @weather.dispose
    # 픽쳐를 해방
    for sprite in @picture_sprites
      sprite.dispose
    end
    # 타이머 스프라이트를 해방
    @timer_sprite.dispose
    # 뷰포트를 해방
    @viewport1.dispose
    @viewport2.dispose
    @viewport3.dispose
  end
  #--------------------------------------------------------------------------
  # ● 프레임 갱신
  #--------------------------------------------------------------------------
  def update
    # 파노라마가 현재의 것과 다른 경우
    if @panorama_name != $game_map.panorama_name or
       @panorama_hue != $game_map.panorama_hue
      @panorama_name = $game_map.panorama_name
      @panorama_hue = $game_map.panorama_hue
      if @panorama.bitmap != nil
        @panorama.bitmap.dispose
        @panorama.bitmap = nil
      end
      if @panorama_name != ""
        @panorama.bitmap = RPG::Cache.panorama(@panorama_name, @panorama_hue)
      end
      Graphics.frame_reset
    end
    # 포그가 현재의 것과 다른 경우
    if @fog_name != $game_map.fog_name or @fog_hue != $game_map.fog_hue
      @fog_name = $game_map.fog_name
      @fog_hue = $game_map.fog_hue
      if @fog.bitmap != nil
        @fog.bitmap.dispose
        @fog.bitmap = nil
      end
      if @fog_name != ""
        @fog.bitmap = RPG::Cache.fog(@fog_name, @fog_hue)
      end
      Graphics.frame_reset
    end
    # 타일 맵을 갱신
    @tilemap.ox = $game_map.display_x / 4
    @tilemap.oy = $game_map.display_y / 4
    @tilemap.update
    # 파노라마 프레인을 갱신
    @panorama.ox = $game_map.display_x / 8
    @panorama.oy = $game_map.display_y / 8
    # 포그 프레인을 갱신
    @fog.zoom_x = $game_map.fog_zoom / 100.0
    @fog.zoom_y = $game_map.fog_zoom / 100.0
    @fog.opacity = $game_map.fog_opacity
    @fog.blend_type = $game_map.fog_blend_type
    @fog.ox = $game_map.display_x / 4 + $game_map.fog_ox
    @fog.oy = $game_map.display_y / 4 + $game_map.fog_oy
    @fog.tone = $game_map.fog_tone
    # 캐릭터 스프라이트를 갱신
    for sprite in @character_sprites
      sprite.update
    end
    # 기후 그래픽을 갱신
    @weather.type = $game_screen.weather_type
    @weather.max = $game_screen.weather_max
    @weather.ox = $game_map.display_x / 4
    @weather.oy = $game_map.display_y / 4
    @weather.update
    # 픽쳐를 갱신
    for sprite in @picture_sprites
      sprite.update
    end
    # 타이머 스프라이트를 갱신
    @timer_sprite.update
    # 화면의 색조와 시이크 위치를 설정
    @viewport1.tone = $game_screen.tone
    @viewport1.ox = $game_screen.shake
    shake_y = rand(2)
    if shake_y == 0
      @viewport1.oy = $game_screen.shake
    else
      @viewport1.oy = -$game_screen.shake
    end
    # 화면의 플래시색을 설정
    @viewport3.color = $game_screen.flash_color
    # 뷰포트를 갱신
    @viewport1.update
    @viewport3.update
  end
end


Scene_Debug 바로 아래에 넣어주세요~
?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수 추천 수
228 RPGXP 스크립트 특정범위내에들어오면이동하기 file A.M.S 2010.10.14 2343 0
227 RPGXP 스크립트 8방향이동 1 file A.M.S 2010.10.14 2330 0
226 RPGMV 플러그인 엔딩 후 타이틀과 BGM 변경 6 file 러닝은빛 2015.12.21 2314 0
225 RPGXP 스크립트 달리기스크립트 4 천둥번들 2014.02.22 2309 2
224 RPGXP 스크립트 새로운 게임 시작/로드 시 미묘한 연출 추가. 창조도시 2007.12.01 2293 1
223 RPGVX 스크립트 현재 파티내 캐릭터를 선택지로 처리할 때 간편히 하자. file Evangelista 2009.01.01 2279 1
222 RPGXP 스크립트 아이템획득 표시 1 file A.M.S 2010.10.14 2277 0
221 RPGXP 스크립트 아이템소지 한계돌파 file A.M.S 2010.10.24 2248 0
220 RPGXP 스크립트 맵이름 표시 스크립트 18  운 2013.10.05 2246 0
219 RPGXP 스크립트 문과 상자를 쉽게 만들수 있는 스크립트 18 2013.10.21 2244 0
218 RPGXP 스크립트 한글이름입력기 v1.76 1 창조도시 2008.07.24 2208 3
217 RPGXP 스크립트 대각선 방향 이동추가로 8방향 이동 만들기. 1 창조도시 2008.08.14 2208 1
216 RPGXP 스크립트 반칸이동 1 1 file A.M.S 2010.07.18 2184 0
215 RPGXP 스크립트 미니맵 스크립트 2 2013.10.01 2177 0
214 RPGXP 스크립트 창고 시스템 2 창조도시 2008.01.18 2168 3
213 RPGVX 스크립트 이벤트커맨드 스크립트 관련 설명 3 Evangelista 2009.01.29 2163 3
212 RPGMV 플러그인 스크린샷 파일 만들기 2 file 러닝은빛 2015.12.23 2151 0
211 RPGXP 스크립트 8방향이동 1 1 file A.M.S 2010.10.14 2151 0
210 RPGXP 스크립트 아이템창을 아이템 분류별로 나누어 지게 개조. 3 file 창조도시 2007.12.02 2148 1
209 RPGXP 스크립트 스텟포인트투자 1 file A.M.S 2010.10.24 2142 2
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 15 Next
/ 15






[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)