polectron

mapview

Jul 16th, 2017
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 5.72 KB | None | 0 0
  1. class CardMap
  2.  
  3.   def initialize(id)
  4.     @id = id
  5.   end
  6.  
  7.   def pbStartScene
  8.     @sprites={}
  9.     @viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
  10.     @viewport.z=99999
  11.    
  12.     @sprites["map1"]=Sprite.new(@viewport)
  13.     @sprites["map1"].bitmap=createNormalMap($game_map.map_id)
  14.     @sprites["map1"].z=0
  15.    
  16.     @sprites["map2"]=Sprite.new(@viewport)
  17.     @sprites["map2"].bitmap=createNormalMap(@id)
  18.     @sprites["map2"].z=0
  19.    
  20.     #filename="Graphics/Charactes/"+$game_player.character_name
  21.     @direction = $game_player.direction
  22.     @sprites["character"]=TrainerWalkingCharSprite.new($game_player.character_name,@viewport)
  23.     charwidth=@sprites["character"].bitmap.width
  24.     charheight=@sprites["character"].bitmap.height
  25.     playerw = charwidth/4
  26.     playerh = charheight/4
  27.    
  28.     @sprites["character"].x = $game_player.x * 32 - 16
  29.     @sprites["character"].y = $game_player.y * 32
  30.    
  31.     if @direction == 6 #right
  32.       @sprites["character"].x += 32*4
  33.       @sprites["character"].y -= 32
  34.       @sprites["character"].src_rect = Rect.new(0,playerh*2,charwidth/4,charheight/4)
  35.       @sprites["map1"].x=0
  36.       @sprites["map1"].y=0
  37.       @sprites["map2"].x=672
  38.       @sprites["map2"].y=0
  39.     elsif @direction == 4 #left
  40.       @sprites["character"].x -= 32*4
  41.       @sprites["character"].y -= 32
  42.       @sprites["character"].src_rect = Rect.new(0,playerh,charwidth/4,charheight/4)
  43.       @sprites["map1"].x=0
  44.       @sprites["map1"].y=0
  45.       @sprites["map2"].x=-672
  46.       @sprites["map2"].y=0
  47.     elsif @direction == 2 #bottom
  48.       @sprites["character"].y += 32*3
  49.       @sprites["character"].src_rect = Rect.new(0,0,charwidth/4,charheight/4)
  50.       @sprites["map1"].x=0
  51.       @sprites["map1"].y=0
  52.       @sprites["map2"].x=0
  53.       @sprites["map2"].y=480
  54.     elsif @direction == 8 #top
  55.       @sprites["character"].y -= 32*5
  56.       @sprites["character"].src_rect = Rect.new(0,playerh*3,charwidth/4,charheight/4)
  57.       @sprites["map1"].x=0
  58.       @sprites["map1"].y=0
  59.       @sprites["map2"].x=0
  60.       @sprites["map2"].y=-480
  61.     end
  62.   end
  63.  
  64.   def pbEndScene # CUANDO TERMINA...
  65.     pbTeleport(@id)
  66.     pbDisposeSpriteHash(@sprites)
  67.     @viewport.dispose if @viewport
  68.     pbResetLocalSwitches
  69.     $game_map.refresh
  70.   end
  71.  
  72.   def pbUpdate  
  73.     tileSize = 16
  74.     Graphics.update
  75.     sleep(0.02)
  76.     if @direction == 6 || @direction == 4
  77.       loops = 672/tileSize
  78.     else
  79.       loops = 480/tileSize
  80.     end    
  81.    
  82.     for i in 0...loops
  83.       if @direction == 6
  84.         @sprites["map1"].x-=tileSize
  85.         @sprites["map2"].x-=tileSize
  86.         @sprites["character"].x-=tileSize
  87.       elsif @direction == 4
  88.         @sprites["map1"].x+=tileSize
  89.         @sprites["map2"].x+=tileSize
  90.         @sprites["character"].x+=tileSize
  91.       elsif @direction == 2
  92.         @sprites["map1"].y-=tileSize
  93.         @sprites["map2"].y-=tileSize
  94.         @sprites["character"].y-=tileSize
  95.       elsif @direction == 8
  96.         @sprites["map1"].y+=tileSize
  97.         @sprites["map2"].y+=tileSize
  98.         @sprites["character"].y+=tileSize
  99.       end
  100.       Graphics.update
  101.       sleep(0.02)
  102.     end
  103.      
  104.   end
  105.     ################
  106. end #CIERRA LA CLASE
  107.  
  108. class CardMapScene
  109.  
  110.     def initialize(scene)
  111.      @scene=scene
  112.     end
  113.  
  114.     def pbStartScreen
  115.      @scene.pbStartScene
  116.      @scene.pbUpdate
  117.      @scene.pbEndScene
  118.     end
  119.  
  120. end
  121.  
  122. def pbCardMapDisplay(id)
  123.   pbResetLocalSwitches
  124.   scene=CardMap.new(id)
  125.   screen=CardMapScene.new(scene)
  126.   screen.pbStartScreen
  127. end
  128.  
  129. def createNormalMap(mapid)
  130.   map=load_data(sprintf("Data/Map%03d.rxdata",mapid)) rescue nil
  131.   return BitmapWrapper.new(32,32) if !map
  132.   bitmap=Bitmap.new(map.width*32,map.height*32)
  133.   black=Color.new(0,0,0)
  134.   tilesets=load_data("Data/Tilesets.rxdata")
  135.   tileset=tilesets[map.tileset_id]
  136.   return bitmap if !tileset
  137.   helper=TileDrawingHelper.fromTileset(tileset)
  138.   for y in 0...map.height
  139.     for x in 0...map.width
  140.       for z in 0..2
  141.         id=map.data[x,y,z]
  142.         id=0 if !id
  143.         helper.bltRegularTile(bitmap,x*32,y*32,id)
  144.       end
  145.     end
  146.   end
  147.   #bitmap.fill_rect(0,0,bitmap.width,1,black)
  148.   #bitmap.fill_rect(0,bitmap.height-1,bitmap.width,1,black)
  149.   #bitmap.fill_rect(0,0,1,bitmap.height,black)
  150.   #bitmap.fill_rect(bitmap.width-1,0,1,bitmap.height,black)
  151.   return bitmap
  152. end
  153.  
  154. def pbTeleport(id)
  155.   $PokemonGlobal.visitedrooms += 1
  156.   $PokemonGlobal.oldmap = $game_map.map_id
  157.   $MapFactory.setup(id)
  158.   direction = $game_player.direction
  159.   if direction == 6
  160.     $game_player.moveto(2,$game_player.y)
  161.   elsif direction == 4
  162.     $game_player.moveto(18,$game_player.y)
  163.   elsif direction == 2
  164.     $game_player.moveto($game_player.x,2)
  165.   elsif direction == 8
  166.     $game_player.moveto($game_player.x,12)
  167.   end
  168.   #$game_player.refresh
  169.   $game_map.refresh
  170. end
  171.  
  172. def pbSetTeleports(top, right, bottom, left)
  173.   $PokemonGlobal.topMap = top
  174.   $PokemonGlobal.rightMap = right
  175.   $PokemonGlobal.bottomMap = bottom
  176.   $PokemonGlobal.leftMap = left
  177. end
  178.  
  179. def pbHideEvents()
  180.   for event in $game_map.events
  181.     event[1].character_name = ""
  182.   end
  183.  
  184.   $game_map.refresh
  185. end
  186.  
  187. Events.onMapUpdate+=proc{  
  188.   if($game_player.x == 1 && $game_player.direction == 4)
  189.     if($PokemonGlobal.leftMap != -1)
  190.       pbCardMapDisplay($PokemonGlobal.leftMap)
  191.     end
  192.   end
  193.  
  194.   if($game_player.x == 19 && $game_player.direction == 6)
  195.     if($PokemonGlobal.rightMap != -1)
  196.       pbCardMapDisplay($PokemonGlobal.rightMap)
  197.     end
  198.   end
  199.  
  200.   if($game_player.y == 1 && $game_player.direction == 8)
  201.     if($PokemonGlobal.topMap != -1)
  202.       pbCardMapDisplay($PokemonGlobal.topMap)
  203.     end
  204.   end
  205.  
  206.   if($game_player.y == 13 && $game_player.direction == 2)
  207.     if($PokemonGlobal.bottomMap != -1)
  208.       pbCardMapDisplay($PokemonGlobal.bottomMap)
  209.     end
  210.   end
  211. }
Advertisement
Add Comment
Please, Sign In to add comment