Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- =begin ************************************************************************
- š ƒtƒB[ƒ‹ƒhƒ}ƒbƒv‚Ì•\Ž¦
- =end # ************************************************************************
- module FiMark
- # ¥ Ý’è
- OnMap = [15] # •\Ž¦‚·‚éƒ}ƒbƒvID (—á [1, 2, 5])
- NZoom = 0.3 # ƒ}ƒbƒv‚ÌŠg‘å—¦
- OnSwi = 0 # •\Ž¦Ø‚è‘Ö‚¦ƒXƒCƒbƒ`ID (0‚Åí‚É•\Ž¦)
- CX , CY = 544 , 416 # XÀ•W , YÀ•W (•\Ž¦‚·‚éƒ}ƒbƒv‚Ì’†SˆÊ’u)
- Spa = 4 # —]”’ (’[‚Ì‚Í‚Ýo‚µ‚ð‹§‚·‚é”͈Í)
- # ¥ F ( Ô , —Î ,  , “§–¾“x ) 0 ` 255 ‚͈̔͂ÅÝ’è
- Land = Color.new(192, 192, 192, 144) # —¤’n
- Sea = Color.new( 0, 0, 0, 144) # ŠC
- OffS = Color.new( 32, 32, 32, 144) # ŠC (ó)
- Mtn = Color.new(128, 128, 128, 144) # ŽR
- Now = Color.new(208, 112, 0, 255) # Œ»Ý’n
- # ¤ Ú×Ý’è (’†‹‰)
- LoMap = [] # ‚ ‚ç‚©‚¶‚ß“Ç‚Ýž‚Þƒ}ƒbƒv
- MZoom = {} # ƒ}ƒbƒv‚²‚Æ‚ÌŠg‘å—¦‚ðŒˆ‚ß‚é ( ID=>Šg‘å—¦, )
- # ¦ ƒ}ƒbƒv‚ð“Ç‚Ýž‚ÞŽž‚É’x‚¢‚ÆŠ´‚¶‚½‚çA‚»‚̃}ƒbƒv‚ð LoMap ‚Ì’†‚É“ü‚ê‚Ü‚·
- # ¦ ‰æ‘œ‚ÍA‰æ–Ê‚ÌŠO‚É‚Í‚Í‚Ýo‚³‚È‚¢—l‚Éݒ肳‚ê‚Ä‚¢‚Ü‚·
- # “ÁŽêÝ’è (»ì—p)
- Point = Color.new(255, 255, 0, 255) # F ƒ|ƒCƒ“ƒg
- end
- #-mymemo-----------------------------------------------------------------------
- # ŠC‚Í ˆê‘w–ڂ̃^ƒCƒ‹ID ‚ª‘S‚Ä“¯‚¶ (“ñ‘w–ڂŃ^ƒCƒ‹”»•Ê)
- # ŽR‚Í “ñ‘w–ڂ̃ŒƒCƒ„[ ‚Ƀ^ƒCƒ‹”Ô†‚ªÚ‚Á‚Ä‚¢‚é (ˆê‘w–Ú‚Ì°‚ª“¯‚¶¶’n)
- # 쬂·‚é‰æ‘œ‚ð•ÏX‚·‚é‚Æ‚«‚ÍACache ‚Ì create_map(map_id) ‚ð•ÏX
- #------------------------------------------------------------------------------
- #==============================================================================
- # ¡ Cache
- #==============================================================================
- module Cache
- #--------------------------------------------------------------------------
- # œ ’è”
- #--------------------------------------------------------------------------
- MtnIndex = [18, 26, 34, 42] # ŽR‚̃Cƒ“ƒfƒbƒNƒX
- #--------------------------------------------------------------------------
- # œ ƒQ[ƒ€ŠJŽnŽž‚ÌÝ’è
- #--------------------------------------------------------------------------
- def self.start_up_by_fimark
- for i in FiMark::LoMap do self.load_map(i) end # •\Ž¦‚·‚éƒ}ƒbƒv‚ðì¬
- end
- #--------------------------------------------------------------------------
- # œ ƒ}ƒbƒv ƒrƒbƒgƒ}ƒbƒv ‚Ìì¬
- # map_id : ƒ}ƒbƒv ID
- #--------------------------------------------------------------------------
- def self.create_map(map_id)
- map = load_data(sprintf("Data/Map%03d.rvdata", map_id))
- bitmap = Bitmap.new(map.width, map.height)
- for y in 0...map.height
- for x in 0...map.width
- tile1 = map.data[x, y, 0]
- tile2 = map.data[x, y, 1]
- # ŠC (ƒ^ƒCƒ‹A : ƒCƒ“ƒfƒbƒNƒX1 : ‰º‘wƒŒƒCƒ„[)
- if Zii.tile_info(tile1) == [0, 0]
- if Zii.tile_number(tile2) == 1
- bitmap.set_pixel(x, y, FiMark::Sea)
- else # 󂢊C
- bitmap.set_pixel(x, y, FiMark::OffS)
- end
- # ŽR (ƒ^ƒCƒ‹A : ’蔃Cƒ“ƒfƒbƒNƒX : ’†‘wƒŒƒCƒ„[)
- elsif (MtnIndex.include?(Zii.tile_number(tile2)) and
- Zii.tile_type(tile2) == 0)
- bitmap.set_pixel(x, y, FiMark::Mtn)
- # —¤’n (‚»‚Ì‘¼)
- else
- bitmap.set_pixel(x, y, FiMark::Land)
- end
- end
- end
- return bitmap
- end
- #--------------------------------------------------------------------------
- # œ ƒ}ƒbƒv ƒrƒbƒgƒ}ƒbƒv ‚Ì“Ç‚Ýž‚Ý
- # map_id : ƒ}ƒbƒv ID
- #--------------------------------------------------------------------------
- def self.load_map(map_id)
- @cache = {} if @cache == nil
- path = "ZiiFieldMap/" + map_id.to_s
- if not @cache.include?(path) or @cache[path].disposed?
- if map_id <= 0
- @cache[path] = Bitmap.new(32, 32)
- else
- @cache[path] = self.create_map(map_id)
- end
- end
- return @cache[path]
- end
- end
- #****************************************************************************
- # š ƒ^ƒCƒ‹ƒf[ƒ^‚̉ðÍ (»ì—p)
- #****************************************************************************
- module Zii # Ver2.00
- #--------------------------------------------------------------------------
- # œ ƒ^ƒCƒ‹ˆÃ† ‚̎擾 (”z—ñ)
- # type : °‚ÌŽí—Þ (0`4 : A`E)
- # index : ƒ^ƒCƒ‹”Ô†
- #--------------------------------------------------------------------------
- def self.tile_data(type, index)
- return [] if type == nil
- return [] if index == nil
- if type == 0 # Aƒ^ƒCƒ‹
- if index < 128
- result = []
- for i in 0...48
- result.push(i + index * 48 + 2048)
- end
- return result
- else # ƒp[ƒc5 ‚Ìê‡
- return [index + 1408]
- end
- else # Bƒ^ƒCƒ‹ˆÈ~
- return [(type - 1) * 256 + index]
- end
- end
- #--------------------------------------------------------------------------
- # œ ƒ^ƒCƒ‹ƒ^ƒCƒv ‚̎擾
- # data : ƒ^ƒCƒ‹ˆÃ†
- #--------------------------------------------------------------------------
- def self.tile_type(data)
- return nil if data == nil
- if data >= 1280 # Aƒ^ƒCƒ‹ (0)
- return 0
- else # Bƒ^ƒCƒ‹ ˆÈ~ (1..)
- return (data / 256 + 1)
- end
- end
- #--------------------------------------------------------------------------
- # œ ƒ^ƒCƒ‹”Ô† ‚̎擾
- # data : ƒ^ƒCƒ‹ˆÃ†
- #--------------------------------------------------------------------------
- def self.tile_number(data)
- return nil if data == nil
- if data >= 1280 # Aƒ^ƒCƒ‹
- if data >= 2048
- return (data - 2048) / 48
- else # ƒp[ƒc5 ‚Ìê‡
- return (data - 1408)
- end
- else # Bƒ^ƒCƒ‹ ˆÈ~
- return (data % 256)
- end
- end
- #--------------------------------------------------------------------------
- # œ ƒ^ƒCƒ‹ƒ^ƒCƒv ‚̎擾
- # data : ƒ^ƒCƒ‹ˆÃ†
- #--------------------------------------------------------------------------
- def self.tile_info(data)
- return [self.tile_type(data), self.tile_number(data)]
- end
- end
- #****************************************************************************
- # š ƒV[ƒ“‚Ì—˜—p
- #****************************************************************************
- #==============================================================================
- # ¡ Spriteset_Map
- #==============================================================================
- class Spriteset_Map
- #--------------------------------------------------------------------------
- # œ ƒIƒuƒWƒFƒNƒg‰Šú‰»
- #--------------------------------------------------------------------------
- alias :zii_fimark_initialize :initialize
- def initialize
- create_fieldmark
- zii_fimark_initialize
- end
- #--------------------------------------------------------------------------
- # œ ‰ð•ú
- #--------------------------------------------------------------------------
- alias :zii_fimark_dispose :dispose
- def dispose
- dispose_fieldmark
- zii_fimark_dispose
- end
- #--------------------------------------------------------------------------
- # œ ƒtƒŒ[ƒ€XV
- #--------------------------------------------------------------------------
- alias :zii_fimark_update :update
- def update
- zii_fimark_update
- update_fieldmark
- end
- #--------------------------------------------------------------------------
- # œ ƒ}ƒbƒv‰æ‘œ‚Ìì¬
- #--------------------------------------------------------------------------
- def create_fieldmark
- return unless FiMark::OnMap.include?($game_map.map_id)
- # ƒrƒ…[ƒ|[ƒgì¬
- @mark_view = Viewport.new(0, 0, 544, 416)
- @mark_view.z = 80
- # ƒ}ƒbƒv‰æ‘œì¬
- @field_mark = Sprite.new(@mark_view)
- @field_mark.bitmap = Cache.load_map($game_map.map_id)
- # ƒ|ƒCƒ“ƒ^[ì¬
- @mark_pointer = Sprite.new(@mark_view)
- @mark_pointer.bitmap = Bitmap.new(3, 3)
- @mark_pointer.bitmap.fill_rect(0, 0, 3, 3, FiMark::Now)
- @mark_pointer.ox = @mark_pointer.width / 2
- @mark_pointer.oy = @mark_pointer.height / 2
- end
- #--------------------------------------------------------------------------
- # œ ƒ}ƒbƒv‰æ‘œ‚̉ð•ú
- #--------------------------------------------------------------------------
- def dispose_fieldmark
- if @mark_pointer != nil
- @mark_pointer.bitmap.dispose
- @mark_pointer.dispose
- end
- if @field_mark != nil
- @field_mark.dispose
- end
- if @mark_view != nil
- @mark_view.dispose
- end
- end
- #--------------------------------------------------------------------------
- # œ ƒ}ƒbƒv‰æ‘œ‚ÌXV
- #--------------------------------------------------------------------------
- def update_fieldmark
- return if @field_mark == nil
- return if @mark_pointer == nil
- move_fieldmark
- @field_mark.update
- @mark_pointer.update
- end
- #--------------------------------------------------------------------------
- # œ ’†S‚Ì X À•WŽæ“¾
- #--------------------------------------------------------------------------
- def fieldmark_cx
- return FiMark::CX
- end
- #--------------------------------------------------------------------------
- # œ ’†S‚Ì Y À•WŽæ“¾
- #--------------------------------------------------------------------------
- def fieldmark_cy
- return FiMark::CY
- end
- #--------------------------------------------------------------------------
- # œ ƒ}ƒbƒv‰æ‘œŠg‘å—¦‚̎擾
- #--------------------------------------------------------------------------
- def zoom_fieldmark
- if FiMark::MZoom.include?($game_map.map_id)
- zoom = FiMark::MZoom[$game_map.map_id]
- else
- zoom = FiMark::NZoom
- end
- return zoom
- end
- #--------------------------------------------------------------------------
- # œ ƒ}ƒbƒv‰æ‘œ‚̈ړ®
- #--------------------------------------------------------------------------
- def move_fieldmark
- if(@zoom_fieldmark != zoom_fieldmark or
- @fieldmark_cx != fieldmark_cx or @fieldmark_cy != fieldmark_cy)
- @zoom_fieldmark = zoom_fieldmark
- @fieldmark_cx = fieldmark_cx
- @fieldmark_cy = fieldmark_cy
- cx , cy = @fieldmark_cx , @fieldmark_cy # ’†S‚ÌÀ•W‚̎擾
- width = @field_mark.width * @zoom_fieldmark # ‰¡•‚̎擾
- height = @field_mark.height * @zoom_fieldmark # ‚‚³‚̎擾
- @field_mark.x = cx - width / 2
- @field_mark.y = cy - height / 2
- # X À•W‚̈ʒu‚¸‚êC³
- if @field_mark.x < FiMark::Spa
- @field_mark.x = FiMark::Spa
- elsif @field_mark.x + width > 544 - FiMark::Spa
- @field_mark.x = 544 - FiMark::Spa - width
- end
- # Y À•W‚̈ʒu‚¸‚êC³
- if @field_mark.y < FiMark::Spa
- @field_mark.y = FiMark::Spa
- elsif @field_mark.y + height > 416 - FiMark::Spa
- @field_mark.y = 416 - FiMark::Spa - height
- end
- @field_mark.zoom_x = @zoom_fieldmark
- @field_mark.zoom_y = @zoom_fieldmark
- end
- @mark_pointer.x = @field_mark.x + $game_player.x * @zoom_fieldmark
- @mark_pointer.y = @field_mark.y + $game_player.y * @zoom_fieldmark
- if FiMark::OnSwi > 0
- @field_mark.visible = $game_switches[FiMark::OnSwi]
- @mark_pointer.visible = $game_switches[FiMark::OnSwi]
- end
- end
- end
- #****************************************************************************
- # š ‰Šúˆ—
- #****************************************************************************
- # œ ‹N“®Žž‚Ƀ}ƒbƒv‰æ‘œ‚ðì¬
- Cache.start_up_by_fimark
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement