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. 횡스크롤 점프 [버튼허용스위치추가]

    Date2014.06.01 CategoryRPGXP 스크립트 By 운 Views1626 Votes0
    Read More
  2. 횡스크롤 스크립트

    Date2013.09.27 CategoryRPGXP 스크립트 By 운 Views1107 Votes0
    Read More
  3. 회전하는 타이틀 메뉴 플러그인

    Date2015.10.26 CategoryRPGMV 플러그인 By파란별빛 Views839 Votes0
    Read More
  4. 화면의 쉐이크를 더 어지럽게 바꿔보자!

    Date2013.10.01 CategoryRPGXP 스크립트 By Views986 Votes0
    Read More
  5. 화면에 이미지를 표시하는 스크립트(C#)

    Date2016.02.04 Category유니티 스크립트 Byzerosium Views2370 Votes0
    Read More
  6. 화면 다중 분할 플러그인(Multiple Viewports)

    Date2016.08.25 CategoryRPGMV 플러그인 By러닝은빛 Views1175 Votes0
    Read More
  7. 현재위치&임무 표시

    Date2013.10.01 CategoryRPGXP 스크립트 By Views968 Votes0
    Read More
  8. 현재 파티내 캐릭터를 선택지로 처리할 때 간편히 하자.

    Date2009.01.01 CategoryRPGVX 스크립트 ByEvangelista Views1778 Votes1
    Read More
  9. 현재 파티내 캐릭터를 선택지로 처리할 때 간편히 하자.

    Date2009.01.01 CategoryRPGVX 스크립트 ByEvangelista Views2277 Votes1
    Read More
  10. 현재 시간 확인

    Date2013.10.01 CategoryRPGXP 스크립트 By Views899 Votes0
    Read More
  11. 현실 시간 변수 대입 플러그인

    Date2015.10.26 CategoryRPGMV 플러그인 By최빛빛 Views603 Votes1
    Read More
  12. 헤드 업 디스플레이 스크립트

    Date2015.01.30 CategoryRPGXP 스크립트 By 운 Views867 Votes0
    Read More
  13. 해상도 변경 플러그인 v0.1

    Date2015.10.24 CategoryRPGMV 플러그인 By카리스 Views5689 Votes2
    Read More
  14. 한글조합입력기(영어가능)

    Date2019.11.10 CategoryRPGXP 스크립트 By조규진1 Views621 Votes0
    Read More
  15. 한글이름입력기 v1.76

    Date2008.07.24 CategoryRPGXP 스크립트 By창조도시 Views2698 Votes2
    Read More
  16. 한글이름입력기 v1.76

    Date2008.07.24 CategoryRPGXP 스크립트 By창조도시 Views2208 Votes3
    Read More
  17. 한글 이름 입력창 2.1v

    Date2016.02.12 CategoryRPGMV 플러그인 By맛난호빵 Views2393 Votes0
    Read More
  18. 한글 이름 입력 처리 플러그인

    Date2015.10.24 CategoryRPGMV 플러그인 By파란별빛 Views1670 Votes0
    Read More
  19. 한글 데미지 표시

    Date2018.07.09 CategoryRPGMV 플러그인 By러닝은빛 Views1196 Votes0
    Read More
  20. 한국어 조사 (은/는/이/가) 처리 플러그인 입니다.

    Date2015.10.24 CategoryRPGMV 플러그인 By파란별빛 Views1037 Votes0
    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(김원배) | 사신지(김병국)