Advertisement
Caeles

mapview

Jan 30th, 2020
261
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 8.96 KB | None | 0 0
  1. class CardMap
  2.  
  3.   def initialize(id)
  4.     @id = id
  5.     @map1 = load_data(sprintf("Data/Map%03d.rxdata",$game_map.map_id)) rescue nil
  6.     @map1_height = @map1.height
  7.     @map1_width = @map1.width
  8.     @map2 = load_data(sprintf("Data/Map%03d.rxdata",id)) rescue nil
  9.     @map2_height = @map2.height
  10.     @map2_width = @map2.width
  11.   end
  12.  
  13.   def pbStartScene
  14.     @sprites={}
  15.     @viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
  16.     @viewport.z=99999
  17.    
  18.     @sprites["map1"]=Sprite.new(@viewport)
  19.     @sprites["map1"].bitmap=createNormalMap($game_map.map_id)
  20.     @sprites["map1"].z=0
  21.    
  22.     @sprites["map2"]=Sprite.new(@viewport)
  23.     @sprites["map2"].bitmap=createNormalMap(@id)
  24.     @sprites["map2"].z=0
  25.    
  26.     #filename="Graphics/Charactes/"+$game_player.character_name
  27.     @direction = $game_player.direction
  28.     @sprites["character"]=TrainerWalkingCharSprite.new($game_player.character_name,@viewport)
  29.     charwidth=@sprites["character"].bitmap.width
  30.     charheight=@sprites["character"].bitmap.height
  31.     playerw = charwidth/4
  32.     playerh = charheight/4
  33.    
  34.     @sprites["character"].x = $game_player.x * 32 - 16
  35.     @sprites["character"].y = $game_player.y * 32
  36.    
  37.     if @direction == 6 #right
  38.       @sprites["character"].x += 32*($PokemonGlobal.leftSpawn+1)
  39.       @sprites["character"].y -= 32
  40.       @sprites["character"].src_rect = Rect.new(0,playerh*2,charwidth/4,charheight/4)
  41.       @sprites["map1"].x=0
  42.       @sprites["map1"].y=0
  43.       @sprites["map2"].x=@map2_width*32
  44.       @sprites["map2"].y=0
  45.     elsif @direction == 4 #left
  46.       @sprites["character"].x -= 32*($PokemonGlobal.rightSpawn+1)
  47.       @sprites["character"].y -= 32
  48.       @sprites["character"].src_rect = Rect.new(0,playerh,charwidth/4,charheight/4)
  49.       @sprites["map1"].x=0
  50.       @sprites["map1"].y=0
  51.       @sprites["map2"].x=-@map2_width*32
  52.       @sprites["map2"].y=0
  53.     elsif @direction == 2 #bottom
  54.       #@sprites["character"].y += 32*3
  55.       @sprites["character"].y = 15*32 - 32*($PokemonGlobal.topSpawn+1)
  56.       @sprites["character"].src_rect = Rect.new(0,0,charwidth/4,charheight/4)
  57.       @sprites["map1"].x=0
  58.       @sprites["map1"].y=-(@map1_height-15)*32
  59.       @sprites["map2"].x=0
  60.       @sprites["map2"].y=@map2_height*32    
  61.     elsif @direction == 8 #top
  62.       @sprites["character"].y -= 32*($PokemonGlobal.bottomSpawn+2)
  63.       @sprites["character"].src_rect = Rect.new(0,playerh*3,charwidth/4,charheight/4)
  64.       @sprites["map1"].x=0
  65.       @sprites["map1"].y=0
  66.       @sprites["map2"].x=0
  67.       @sprites["map2"].y=-@map2_height*32
  68.     end
  69.   end
  70.  
  71.   def pbEndScene # CUANDO TERMINA...
  72.     pbTeleport(@id)
  73.     pbDisposeSpriteHash(@sprites)
  74.     @viewport.dispose if @viewport
  75.     pbResetLocalSwitches
  76.     $game_map.refresh
  77.   end
  78.  
  79.   def pbUpdate  
  80.     tileSize = 16
  81.     Graphics.update
  82.     #sleep(0.02)
  83.     if @direction == 6 || @direction == 4
  84.       loops = 21*2
  85.     else
  86.       loops = 15*2
  87.     end    
  88.    
  89.     for i in 0...loops
  90.       if @direction == 6
  91.         @sprites["map1"].x-=tileSize
  92.         @sprites["map2"].x-=tileSize
  93.         @sprites["character"].x-=tileSize
  94.       elsif @direction == 4
  95.         @sprites["map1"].x+=tileSize
  96.         @sprites["map2"].x+=tileSize
  97.         @sprites["character"].x+=tileSize
  98.       elsif @direction == 2
  99.         @sprites["map1"].y-=tileSize
  100.         @sprites["map2"].y-=tileSize
  101.         @sprites["character"].y-=tileSize
  102.       elsif @direction == 8
  103.         @sprites["map1"].y+=tileSize
  104.         @sprites["map2"].y+=tileSize
  105.         @sprites["character"].y+=tileSize
  106.       end
  107.       Graphics.update
  108.       #sleep(0.02)
  109.     end
  110.      
  111.   end
  112.     ################
  113. end #CIERRA LA CLASE
  114.  
  115. class CardMapScene
  116.  
  117.     def initialize(scene)
  118.      @scene=scene
  119.     end
  120.  
  121.     def pbStartScreen
  122.      @scene.pbStartScene
  123.      @scene.pbUpdate
  124.      @scene.pbEndScene
  125.     end
  126.  
  127. end
  128.  
  129. def pbCardMapDisplay(id)
  130.   pbResetLocalSwitches
  131.   scene=CardMap.new(id)
  132.   screen=CardMapScene.new(scene)
  133.   screen.pbStartScreen
  134. end
  135.  
  136. def createNormalMap(mapid)
  137.   map=load_data(sprintf("Data/Map%03d.rxdata",mapid)) rescue nil
  138.   return BitmapWrapper.new(32,32) if !map
  139.   bitmap=Bitmap.new(map.width*32,map.height*32)
  140.   black=Color.new(0,0,0)
  141.   tilesets=load_data("Data/Tilesets.rxdata")
  142.   tileset=tilesets[map.tileset_id]
  143.   return bitmap if !tileset
  144.  
  145.   helper=TileDrawingHelper.fromTileset(tileset)
  146.   for y in 0...map.height
  147.     for x in 0...map.width
  148.       for z in 0..2
  149.         id=map.data[x,y,z]
  150.         id=0 if !id
  151.         helper.bltTile(bitmap,x*32,(y*32),id)
  152.       end
  153.     end
  154.   end
  155.    
  156.   events = []
  157.  
  158.   for i in map.events.keys
  159.     events.push(map.events[i])
  160.   end
  161.  
  162.   doors_lr = AnimatedBitmap.new("Graphics/Characters/doors_left_right.png")
  163.   doors_ud = AnimatedBitmap.new("Graphics/Characters/doors_up_down.png")
  164.   no_doors_lr = AnimatedBitmap.new("Graphics/Characters/no_doors_left_right.png")
  165.   no_doors_ud = AnimatedBitmap.new("Graphics/Characters/no_doors_up_down.png")
  166.  
  167.   for event in events
  168.     if(event.name.include?("DOOR"))
  169.       if event.name.include?("Hall")
  170.         if event.x == 1
  171.           bitmap.blt(event.x*32,event.y*32-12,no_doors_lr.bitmap,Rect.new(32,0,32,44))
  172.         elsif event.x == 19
  173.           bitmap.blt(event.x*32,event.y*32-12,no_doors_lr.bitmap,Rect.new(0,0,32,44))
  174.         elsif event.y == 1
  175.           bitmap.blt(event.x*32-6,event.y*32+2,no_doors_ud.bitmap,Rect.new(0,0,44,30))
  176.         elsif event.y == 13
  177.           bitmap.blt(event.x*32-6,event.y*32+2,no_doors_ud.bitmap,Rect.new(44,0,44,30))
  178.         end
  179.       else
  180.         if event.x == 1
  181.           bitmap.blt(event.x*32,event.y*32-12,doors_lr.bitmap,Rect.new(32,0,32,44))
  182.         elsif event.x == 19
  183.           bitmap.blt(event.x*32,event.y*32-12,doors_lr.bitmap,Rect.new(0,0,32,44))
  184.         elsif event.y == 1
  185.           bitmap.blt(event.x*32-6,event.y*32+2,doors_ud.bitmap,Rect.new(0,0,44,30))
  186.         elsif event.y == 13
  187.           bitmap.blt(event.x*32-6,event.y*32+2,doors_ud.bitmap,Rect.new(44,0,44,30))
  188.         end
  189.       end
  190.     end
  191.   end
  192.   #bitmap.fill_rect(0,0,bitmap.width,1,black)
  193.   #bitmap.fill_rect(0,bitmap.height-1,bitmap.width,1,black)
  194.   #bitmap.fill_rect(0,0,1,bitmap.height,black)
  195.   #bitmap.fill_rect(bitmap.width-1,0,1,bitmap.height,black)
  196.   return bitmap
  197. end
  198.  
  199. def pbTeleport(id)
  200.  
  201.   map=load_data(sprintf("Data/Map%03d.rxdata",id)) rescue nil
  202.  
  203.   $PokemonGlobal.escaped = false
  204.   $PokemonGlobal.visitedrooms += 1
  205.   $PokemonGlobal.oldmap = $game_map.map_id
  206.   #$MapFactory.setup(id)
  207.   $game_temp.player_new_map_id=id
  208.  
  209.   direction = $game_player.direction
  210.   if direction == 6 #right
  211.     $game_temp.player_new_x=$PokemonGlobal.leftSpawn
  212.     $game_temp.player_new_y=$game_player.y
  213.     #$game_player.moveto(2,$game_player.y)
  214.   elsif direction == 4 #left
  215.     $game_temp.player_new_x= map.width-1-$PokemonGlobal.rightSpawn
  216.     $game_temp.player_new_y=$game_player.y
  217.     #$game_player.moveto(18,$game_player.y)
  218.   elsif direction == 2 #bottom
  219.     $game_temp.player_new_x=$game_player.x
  220.     $game_temp.player_new_y=$PokemonGlobal.topSpawn
  221.     #$game_player.moveto($game_player.x,2)
  222.   elsif direction == 8 #top
  223.     $game_temp.player_new_x=$game_player.x
  224.     $game_temp.player_new_y=map.height-1-$PokemonGlobal.bottomSpawn
  225.     #$game_player.moveto($game_player.x,12)
  226.   end
  227.  
  228.   $game_temp.player_new_direction = direction
  229.   $scene.transfer_player
  230. end
  231.  
  232. def pbSetTeleports(top, right, bottom, left)
  233.   $PokemonGlobal.topMap = top
  234.   $PokemonGlobal.rightMap = right
  235.   $PokemonGlobal.bottomMap = bottom
  236.   $PokemonGlobal.leftMap = left
  237. end
  238.  
  239. def pbSetTriggers(top, right, bottom, left)
  240.   $PokemonGlobal.topTrigger = top
  241.   $PokemonGlobal.rightTrigger = right
  242.   $PokemonGlobal.bottomTrigger = bottom
  243.   $PokemonGlobal.leftTrigger = left
  244. end
  245.  
  246. def pbSetSpawns(top, right, bottom, left)
  247.   $PokemonGlobal.topSpawn = top
  248.   $PokemonGlobal.rightSpawn = right
  249.   $PokemonGlobal.bottomSpawn = bottom
  250.   $PokemonGlobal.leftSpawn = left
  251. end
  252.  
  253. def pbHideEvents()
  254.   for event in $game_map.events
  255.     event[1].character_name = ""
  256.   end
  257.  
  258.   $game_map.refresh
  259. end
  260.  
  261. def getPlayerPos
  262.   p 'X: '+$game_player.x.to_s
  263.   p 'Y: '+$game_player.y.to_s
  264.   p 'bottom: '+$PokemonGlobal.bottomMap.to_s
  265.   p $game_map.height
  266. end
  267.  
  268. =begin
  269. Events.onStepTaken+=proc{  
  270.   if($game_player.x == $PokemonGlobal.leftTrigger && $game_player.direction == 4)
  271.     if($PokemonGlobal.leftMap != -1)
  272.       pbCardMapDisplay($PokemonGlobal.leftMap)
  273.     end
  274.   end
  275.  
  276.   if($game_player.x == ($game_map.width-1-$PokemonGlobal.rightTrigger) && $game_player.direction == 6)
  277.     if($PokemonGlobal.rightMap != -1)
  278.       pbCardMapDisplay($PokemonGlobal.rightMap)
  279.     end
  280.   end
  281.  
  282.   if($game_player.y == $PokemonGlobal.topTrigger && $game_player.direction == 8)
  283.     if($PokemonGlobal.topMap != -1)
  284.       pbCardMapDisplay($PokemonGlobal.topMap)
  285.     end
  286.   end
  287.  
  288.   if($game_player.y == ($game_map.height-1-$PokemonGlobal.bottomTrigger) && $game_player.direction == 2)
  289.     if($PokemonGlobal.bottomMap != -1)
  290.       pbCardMapDisplay($PokemonGlobal.bottomMap)
  291.     end
  292.   end
  293. }
  294. =end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement