RPGXP 스크립트
2013.10.01 06:28

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

조회 수 991 추천 수 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. Universal Message System 1.8.0 by ccoa

    Date2013.10.01 CategoryRPGXP 스크립트 By Views584 Votes0
    Read More
  2. Switchless Common Events

    Date2013.10.01 CategoryRPGXP 스크립트 By Views591 Votes0
    Read More
  3. Initial Switches and Variables

    Date2013.10.01 CategoryRPGXP 스크립트 By Views605 Votes0
    Read More
  4. 전메뉴 반투명화

    Date2013.10.01 CategoryRPGXP 스크립트 By Views769 Votes0
    Read More
  5. 밤낮 설정

    Date2013.10.01 CategoryRPGXP 스크립트 By Views996 Votes0
    Read More
  6. 텔레포트 스크립트

    Date2013.10.01 CategoryRPGXP 스크립트 By Views901 Votes0
    Read More
  7. 윈도우 링 메뉴

    Date2013.10.01 CategoryRPGXP 스크립트 By Views845 Votes0
    Read More
  8. 현재위치&임무 표시

    Date2013.10.01 CategoryRPGXP 스크립트 By Views969 Votes0
    Read More
  9. 화면의 쉐이크를 더 어지럽게 바꿔보자!

    Date2013.10.01 CategoryRPGXP 스크립트 By Views991 Votes0
    Read More
  10. 현재 시간 확인

    Date2013.10.01 CategoryRPGXP 스크립트 By Views900 Votes0
    Read More
  11. 레벨업시 능력치 표시

    Date2013.10.01 CategoryRPGXP 스크립트 By Views1081 Votes0
    Read More
  12. 아이템 갯수 제한

    Date2013.10.01 CategoryRPGXP 스크립트 By Views1065 Votes0
    Read More
  13. 복권 스크립트

    Date2013.10.01 CategoryRPGXP 스크립트 By Views1149 Votes0
    Read More
  14. 대기 회복 스크립트

    Date2013.10.01 CategoryRPGXP 스크립트 By Views1078 Votes0
    Read More
  15. 상점에서 아이템 능력치를 표시해주는 스크립트

    Date2013.10.01 CategoryRPGXP 스크립트 By Views1662 Votes0
    Read More
  16. 메뉴 스크립트 Zer0 CMS

    Date2013.10.01 CategoryRPGXP 스크립트 By Views1386 Votes0
    Read More
  17. 발소리 스크립트

    Date2013.10.01 CategoryRPGXP 스크립트 By Views1732 Votes0
    Read More
  18. 부활 스크립트

    Date2013.10.01 CategoryRPGXP 스크립트 By Views2772 Votes0
    Read More
  19. 미니맵 스크립트

    Date2013.10.01 CategoryRPGXP 스크립트 By Views2180 Votes0
    Read More
  20. 파이널 판타지 7 스타일 메뉴

    Date2013.10.01 CategoryRPGXP 스크립트 By Views2034 Votes0
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 Next
/ 8






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

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