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 바로 아래에 넣어주세요~
?

  1. 일시정지 스크립트

    Date2013.09.29 CategoryRPGXP 스크립트 By청담 Views929 Votes0
    Read More
  2. Random Dungeon Generator - Random Room

    Date2014.10.11 CategoryRPGVX Ace 스크립트 ByJunkMan Views930 Votes0
    Read More
  3. UNR (아시려나... ) - 상태 이상

    Date2013.01.20 CategoryRPGXP 스크립트 By동동주 Views936 Votes0
    Read More
  4. 플레이어 발소리 스크립트

    Date2013.09.24 CategoryRPGXP 스크립트 By청담 Views939 Votes0
    Read More
  5. RPG XP Xas액알

    Date2018.10.30 CategoryRPGXP 스크립트 By심심치 Views942 Votes0
    Read More
  6. Ghost Effect

    Date2019.01.20 CategoryRPGMV 플러그인 By러닝은빛 Views945 Votes0
    Read More
  7. 아이템 사용 클래스 한정 스크립트

    Date2013.09.24 CategoryRPGXP 스크립트 By청담 Views947 Votes0
    Read More
  8. 오렌지 - 타임 시스템 플러그인(Time system). (게임 시간시스템 관련)

    Date2015.11.07 CategoryRPGMV 플러그인 Byplam Views948 Votes1
    Read More
  9. Wave Filter

    Date2016.01.14 CategoryRPGMV 플러그인 By러닝은빛 Views965 Votes0
    Read More
  10. Menu Music MV (메뉴를 열때 음악을 콘트롤 하는 플러그인)

    Date2015.11.09 CategoryRPGMV 플러그인 By파란별빛 Views966 Votes0
    Read More
  11. 현재위치&임무 표시

    Date2013.10.01 CategoryRPGXP 스크립트 By Views968 Votes0
    Read More
  12. RPG Maker VX Lite Maze(미로) 만들기 (DFS 사용)

    Date2014.10.06 CategoryRPGVX Ace 스크립트 ByJunkMan Views969 Votes2
    Read More
  13. 유니티)캐릭터 좌우 이동 (C#)

    Date2016.01.05 Category유니티 스크립트 Byzerosium Views982 Votes0
    Read More
  14. 화면의 쉐이크를 더 어지럽게 바꿔보자!

    Date2013.10.01 CategoryRPGXP 스크립트 By Views986 Votes0
    Read More
  15. 창고 시스템

    Date2013.09.24 CategoryRPGXP 스크립트 By청담 Views987 Votes0
    Read More
  16. 밤낮 설정

    Date2013.10.01 CategoryRPGXP 스크립트 By Views994 Votes0
    Read More
  17. 아이템 소지수 무제한 스크립트

    Date2013.09.24 CategoryRPGXP 스크립트 By청담 Views1001 Votes0
    Read More
  18. 상점 메뉴 개조시킨 스크립트

    Date2013.09.24 CategoryRPGXP 스크립트 By청담 Views1004 Votes0
    Read More
  19. EnemyBook v1.1 - SkottyTV Update(몬스터북 플러그인)

    Date2015.10.27 CategoryRPGMV 플러그인 Byplam Views1008 Votes0
    Read More
  20. c[n] 명령어 줄때의 색상 결정.

    Date2008.02.14 CategoryRPGXP 스크립트 By창조도시 Views1015 Votes1
    Read More
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(김원배) | 사신지(김병국)