Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class CardMap
- def initialize(id)
- @id = id
- end
- def pbStartScene
- @sprites={}
- @viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
- @viewport.z=99999
- @sprites["map1"]=Sprite.new(@viewport)
- @sprites["map1"].bitmap=createNormalMap($game_map.map_id)
- @sprites["map1"].z=0
- @sprites["map2"]=Sprite.new(@viewport)
- @sprites["map2"].bitmap=createNormalMap(@id)
- @sprites["map2"].z=0
- #filename="Graphics/Charactes/"+$game_player.character_name
- @direction = $game_player.direction
- @sprites["character"]=TrainerWalkingCharSprite.new($game_player.character_name,@viewport)
- charwidth=@sprites["character"].bitmap.width
- charheight=@sprites["character"].bitmap.height
- playerw = charwidth/4
- playerh = charheight/4
- @sprites["character"].x = $game_player.x * 32
- @sprites["character"].y = $game_player.y * 32
- if @direction == 6 #right
- @sprites["character"].x += 32
- @sprites["character"].y -= 16
- @sprites["character"].src_rect = Rect.new(0,playerh*2,charwidth/4,charheight/4)
- @sprites["map1"].x=0
- @sprites["map1"].y=0
- @sprites["map2"].x=640
- @sprites["map2"].y=0
- elsif @direction == 4 #left
- @sprites["character"].x -= 32
- @sprites["character"].y -= 16
- @sprites["character"].src_rect = Rect.new(0,playerh,charwidth/4,charheight/4)
- @sprites["map1"].x=0
- @sprites["map1"].y=0
- @sprites["map2"].x=-640
- @sprites["map2"].y=0
- elsif @direction == 2 #bottom
- @sprites["character"].y += 16
- @sprites["character"].src_rect = Rect.new(0,0,charwidth/4,charheight/4)
- @sprites["map1"].x=0
- @sprites["map1"].y=0
- @sprites["map2"].x=0
- @sprites["map2"].y=480
- elsif @direction == 8 #top
- @sprites["character"].y -= 32
- @sprites["character"].src_rect = Rect.new(0,playerh*3,charwidth/4,charheight/4)
- @sprites["map1"].x=0
- @sprites["map1"].y=0
- @sprites["map2"].x=0
- @sprites["map2"].y=-480
- end
- end
- def pbEndScene # CUANDO TERMINA...
- pbDisposeSpriteHash(@sprites)
- @viewport.dispose if @viewport
- pbTeleport(@id)
- end
- def pbUpdate
- tileSize = 16
- if @direction == 6 || @direction == 4
- loops = 640/tileSize
- else
- loops = 480/tileSize
- end
- for i in 0...loops
- if @direction == 6
- @sprites["map1"].x-=tileSize
- @sprites["map2"].x-=tileSize
- @sprites["character"].x-=tileSize
- elsif @direction == 4
- @sprites["map1"].x+=tileSize
- @sprites["map2"].x+=tileSize
- @sprites["character"].x+=tileSize
- elsif @direction == 2
- @sprites["map1"].y-=tileSize
- @sprites["map2"].y-=tileSize
- @sprites["character"].y-=tileSize
- elsif @direction == 8
- @sprites["map1"].y+=tileSize
- @sprites["map2"].y+=tileSize
- @sprites["character"].y+=tileSize
- end
- Graphics.update
- sleep(0.02)
- end
- end
- ################
- end #CIERRA LA CLASE
- class CardMapScene
- def initialize(scene)
- @scene=scene
- end
- def pbStartScreen
- @scene.pbStartScene
- @scene.pbUpdate
- @scene.pbEndScene
- end
- end
- def pbCardMapDisplay(id) #se llama al script, 'n' e 'i' son valores numéricos
- pbResetLocalSwitches
- scene=CardMap.new(id)
- screen=CardMapScene.new(scene)
- screen.pbStartScreen
- end
- def createNormalMap(mapid)
- map=load_data(sprintf("Data/Map%03d.rxdata",mapid)) rescue nil
- return BitmapWrapper.new(32,32) if !map
- bitmap=Bitmap.new(map.width*32,map.height*32)
- black=Color.new(0,0,0)
- tilesets=load_data("Data/Tilesets.rxdata")
- tileset=tilesets[map.tileset_id]
- return bitmap if !tileset
- helper=TileDrawingHelper.fromTileset(tileset)
- for y in 0...map.height
- for x in 0...map.width
- for z in 0..2
- id=map.data[x,y,z]
- id=0 if !id
- helper.bltRegularTile(bitmap,x*32,y*32,id)
- end
- end
- end
- #bitmap.fill_rect(0,0,bitmap.width,1,black)
- #bitmap.fill_rect(0,bitmap.height-1,bitmap.width,1,black)
- #bitmap.fill_rect(0,0,1,bitmap.height,black)
- #bitmap.fill_rect(bitmap.width-1,0,1,bitmap.height,black)
- return bitmap
- end
- def pbTeleport(id)
- $MapFactory.setup(id)
- direction = $game_player.direction
- if direction == 6
- $game_player.moveto(0,$game_player.y)
- elsif direction == 4
- $game_player.moveto(19,$game_player.y)
- elsif direction == 2
- $game_player.moveto($game_player.x,0)
- elsif direction == 8
- $game_player.moveto($game_player.x,14)
- end
- #$game_player.refresh
- $game_map.need_refresh = true
- end
- def pbSetTeleports(top, right, bottom, left)
- $PokemonGlobal.topMap = top
- $PokemonGlobal.rightMap = right
- $PokemonGlobal.bottomMap = bottom
- $PokemonGlobal.leftMap = left
- end
- def pbResetLocalSwitches()
- #Kernel.pbMessage(_INTL("{1}",$game_map.events[1].event.class))
- #$game_self_switches[[$game_map.map_id, 1, "A"]] = false
- for event in $game_map.events
- if(event[1].name == "Battle Event")
- $game_self_switches[[$game_map.map_id, event[1].id, "A"]] = false
- end
- end
- $game_map.need_refresh = true
- end
- Events.onMapUpdate+=proc{
- if($game_player.x == 0 && $game_player.direction == 4)
- if($PokemonGlobal.leftMap != -1)
- pbCardMapDisplay($PokemonGlobal.leftMap)
- end
- end
- if($game_player.x == 19 && $game_player.direction == 6)
- if($PokemonGlobal.rightMap != -1)
- pbCardMapDisplay($PokemonGlobal.rightMap)
- end
- end
- if($game_player.y == 0 && $game_player.direction == 8)
- if($PokemonGlobal.topMap != -1)
- pbCardMapDisplay($PokemonGlobal.topMap)
- end
- end
- if($game_player.y == 14 && $game_player.direction == 2)
- if($PokemonGlobal.bottomMap != -1)
- pbCardMapDisplay($PokemonGlobal.bottomMap)
- end
- end
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement