Advertisement
polectron

Untitled

Jan 7th, 2017
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 5.86 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
  29.     @sprites["character"].y = $game_player.y * 32
  30.    
  31.     if @direction == 6 #right
  32.       @sprites["character"].x += 32
  33.       @sprites["character"].y -= 16
  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=640
  38.       @sprites["map2"].y=0
  39.     elsif @direction == 4 #left
  40.       @sprites["character"].x -= 32
  41.       @sprites["character"].y -= 16
  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=-640
  46.       @sprites["map2"].y=0
  47.     elsif @direction == 2 #bottom
  48.       @sprites["character"].y += 16
  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
  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.     pbDisposeSpriteHash(@sprites)
  66.     @viewport.dispose if @viewport
  67.     pbTeleport(@id)
  68.   end
  69.  
  70.   def pbUpdate  
  71.      
  72.     tileSize = 16
  73.    
  74.     if @direction == 6 || @direction == 4
  75.       loops = 640/tileSize
  76.     else
  77.       loops = 480/tileSize
  78.     end    
  79.    
  80.     for i in 0...loops
  81.       if @direction == 6
  82.         @sprites["map1"].x-=tileSize
  83.         @sprites["map2"].x-=tileSize
  84.         @sprites["character"].x-=tileSize
  85.       elsif @direction == 4
  86.         @sprites["map1"].x+=tileSize
  87.         @sprites["map2"].x+=tileSize
  88.         @sprites["character"].x+=tileSize
  89.       elsif @direction == 2
  90.         @sprites["map1"].y-=tileSize
  91.         @sprites["map2"].y-=tileSize
  92.         @sprites["character"].y-=tileSize
  93.       elsif @direction == 8
  94.         @sprites["map1"].y+=tileSize
  95.         @sprites["map2"].y+=tileSize
  96.         @sprites["character"].y+=tileSize
  97.       end
  98.       Graphics.update
  99.       sleep(0.02)
  100.     end
  101.      
  102.   end
  103.     ################
  104. end #CIERRA LA CLASE
  105.  
  106. class CardMapScene
  107.  
  108.     def initialize(scene)
  109.      @scene=scene
  110.     end
  111.  
  112.     def pbStartScreen
  113.      @scene.pbStartScene
  114.      @scene.pbUpdate
  115.      @scene.pbEndScene
  116.     end
  117.  
  118. end
  119.  
  120. def pbCardMapDisplay(id) #se llama al script, 'n' e 'i' son valores numéricos
  121.   pbResetLocalSwitches
  122.   scene=CardMap.new(id)
  123.   screen=CardMapScene.new(scene)
  124.   screen.pbStartScreen
  125. end
  126.  
  127. def createNormalMap(mapid)
  128.   map=load_data(sprintf("Data/Map%03d.rxdata",mapid)) rescue nil
  129.   return BitmapWrapper.new(32,32) if !map
  130.   bitmap=Bitmap.new(map.width*32,map.height*32)
  131.   black=Color.new(0,0,0)
  132.   tilesets=load_data("Data/Tilesets.rxdata")
  133.   tileset=tilesets[map.tileset_id]
  134.   return bitmap if !tileset
  135.   helper=TileDrawingHelper.fromTileset(tileset)
  136.   for y in 0...map.height
  137.     for x in 0...map.width
  138.       for z in 0..2
  139.         id=map.data[x,y,z]
  140.         id=0 if !id
  141.         helper.bltRegularTile(bitmap,x*32,y*32,id)
  142.       end
  143.     end
  144.   end
  145.   #bitmap.fill_rect(0,0,bitmap.width,1,black)
  146.   #bitmap.fill_rect(0,bitmap.height-1,bitmap.width,1,black)
  147.   #bitmap.fill_rect(0,0,1,bitmap.height,black)
  148.   #bitmap.fill_rect(bitmap.width-1,0,1,bitmap.height,black)
  149.   return bitmap
  150. end
  151.  
  152. def pbTeleport(id)
  153.   $MapFactory.setup(id)
  154.   direction = $game_player.direction
  155.   if direction == 6
  156.     $game_player.moveto(0,$game_player.y)
  157.   elsif direction == 4
  158.     $game_player.moveto(19,$game_player.y)
  159.   elsif direction == 2
  160.     $game_player.moveto($game_player.x,0)
  161.   elsif direction == 8
  162.     $game_player.moveto($game_player.x,14)
  163.   end
  164.   #$game_player.refresh
  165.   $game_map.need_refresh = true
  166. end
  167.  
  168. def pbSetTeleports(top, right, bottom, left)
  169.   $PokemonGlobal.topMap = top
  170.   $PokemonGlobal.rightMap = right
  171.   $PokemonGlobal.bottomMap = bottom
  172.   $PokemonGlobal.leftMap = left
  173. end
  174.  
  175. def pbResetLocalSwitches()
  176.   #Kernel.pbMessage(_INTL("{1}",$game_map.events[1].event.class))
  177.   #$game_self_switches[[$game_map.map_id, 1, "A"]] = false
  178.  
  179.   for event in $game_map.events
  180.     if(event[1].name == "Battle Event")
  181.       $game_self_switches[[$game_map.map_id, event[1].id, "A"]] = false
  182.     end
  183.   end
  184.  
  185.   $game_map.need_refresh = true
  186. end
  187.  
  188. Events.onMapUpdate+=proc{  
  189.   if($game_player.x == 0 && $game_player.direction == 4)
  190.     if($PokemonGlobal.leftMap != -1)
  191.       pbCardMapDisplay($PokemonGlobal.leftMap)
  192.     end
  193.   end
  194.  
  195.   if($game_player.x == 19 && $game_player.direction == 6)
  196.     if($PokemonGlobal.rightMap != -1)
  197.       pbCardMapDisplay($PokemonGlobal.rightMap)
  198.     end
  199.   end
  200.  
  201.   if($game_player.y == 0 && $game_player.direction == 8)
  202.     if($PokemonGlobal.topMap != -1)
  203.       pbCardMapDisplay($PokemonGlobal.topMap)
  204.     end
  205.   end
  206.  
  207.   if($game_player.y == 14 && $game_player.direction == 2)
  208.     if($PokemonGlobal.bottomMap != -1)
  209.       pbCardMapDisplay($PokemonGlobal.bottomMap)
  210.     end
  211.   end
  212. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement