Advertisement
TechSkylander1518

Cinematic Fade In/Out

Nov 3rd, 2021
504
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 6.45 KB | None | 0 0
  1. #Credits:
  2. #Initial code- TechSkylander1518
  3. #Bugfixes and other improvements- Golisopod User
  4. #Concept - Nocturn
  5.  
  6. #If you're using v18, change this line:
  7.     meta = GameData::Metadata.get_player($Trainer.character_ID)
  8. #to:
  9.     meta = pbGetMetadata(0,MetadataPlayerA+trainer.metaID)
  10.  
  11.  
  12. #Fade Speed is how fast the player sprite and screen fade out
  13. FADE_SPEED = 15
  14.  
  15. class TrainerWalkingCharSprite < SpriteWrapper
  16.   def direction=(value)
  17.     @direction = value
  18.     self.src_rect.y = @animbitmap.bitmap.height/4*@direction
  19.   end
  20. end
  21.  
  22. def dummyMove
  23.   return if !$PokemonTemp.cin_player
  24.   case $game_player.direction
  25.   when 2
  26.     $PokemonTemp.cin_player.y += 1
  27.     $game_map.display_y += 5
  28.     pbUpdateSceneMap
  29.     $PokemonTemp.cin_player.update
  30.     Graphics.update
  31.   when 4
  32.     $PokemonTemp.cin_player.x -= 1
  33.     $game_map.display_x -= 5
  34.     pbUpdateSceneMap
  35.     $PokemonTemp.cin_player.update
  36.     Graphics.update
  37.   when 6
  38.     $PokemonTemp.cin_player.x += 1
  39.     $game_map.display_x += 5
  40.     pbUpdateSceneMap
  41.     $PokemonTemp.cin_player.update
  42.     Graphics.update
  43.   when 8
  44.     $PokemonTemp.cin_player.y -= 1
  45.     $game_map.display_y -= 5
  46.     pbUpdateSceneMap
  47.     $PokemonTemp.cin_player.update
  48.     Graphics.update
  49.   end
  50. end
  51.  
  52. def cinFadeOut
  53.   pbMoveRoute($game_player,[PBMoveRoute::Opacity,0],true)
  54.   $game_player.transparent = true
  55.   pbWait(1)
  56.   $PokemonTemp.cin_viewport = Viewport.new(0,0,Graphics.width,Graphics.height)
  57.   $PokemonTemp.cin_viewport.z = 99998
  58.   meta = GameData::Metadata.get_player($Trainer.character_ID)
  59.   filename = pbGetPlayerCharset(meta,1,nil,true)
  60.   $PokemonTemp.cin_player = TrainerWalkingCharSprite.new(filename,$PokemonTemp.cin_viewport)
  61.   $PokemonTemp.cin_player.animspeed = $game_player.move_speed * 3
  62.   charwidth = $PokemonTemp.cin_player.bitmap.width
  63.   charheight = $PokemonTemp.cin_player.bitmap.height
  64.   $PokemonTemp.cin_player.ox = charwidth/8
  65.   $PokemonTemp.cin_player.oy = charheight/8
  66.   $PokemonTemp.cin_player.x = (Graphics.width/2)
  67.   $PokemonTemp.cin_player.y = (Graphics.height/2) - 8
  68.   pbDayNightTint($PokemonTemp.cin_player)
  69.   case $game_player.direction
  70.   when 2
  71.     $PokemonTemp.cin_player.direction = 0
  72.   when 4
  73.     $PokemonTemp.cin_player.direction = 1
  74.   when 6
  75.     $PokemonTemp.cin_player.direction = 2
  76.   when 8
  77.     $PokemonTemp.cin_player.direction = 3
  78.   end
  79.   $PokemonTemp.cin_player.update
  80.   Graphics.update
  81.   $PokemonTemp.cin_bg = BitmapSprite.new(Graphics.width,Graphics.height,$PokemonTemp.cin_viewport)
  82.   $PokemonTemp.cin_bg.bitmap.fill_rect(0,0,Graphics.width,Graphics.height,Color.new(0,0,0))
  83.   $PokemonTemp.cin_bg.opacity = 0
  84.   $PokemonTemp.cin_player.z = 99999
  85.   loop do
  86.     break if $PokemonTemp.cin_bg.opacity >= 255
  87.     $PokemonTemp.cin_bg.opacity += FADE_SPEED
  88.     dummyMove
  89.     $PokemonTemp.cin_player.update
  90.     Graphics.update
  91.   end
  92.   10.times do
  93.     $PokemonTemp.cin_player.update
  94.   end
  95.   loop do
  96.     break if $PokemonTemp.cin_player.opacity <= 0
  97.     $PokemonTemp.cin_player.opacity -= FADE_SPEED
  98.     dummyMove
  99.     Graphics.update
  100.   end
  101.   $PokemonTemp.cin_bg.dispose
  102.   $PokemonTemp.cin_bg = nil
  103.   $PokemonTemp.cin_player.dispose
  104.   $PokemonTemp.cin_player = nil
  105.   $PokemonTemp.cin_viewport.dispose
  106.   $PokemonTemp.cin_viewport = nil
  107.   pbMoveRoute($game_player,[PBMoveRoute::Opacity,255],true)
  108.   $game_player.transparent=false
  109.   $game_map.update
  110. end
  111.  
  112.  
  113.  
  114. def cinFadeIn
  115.   $PokemonTemp.cin_viewport = Viewport.new(0,0,Graphics.width,Graphics.height)
  116.   $PokemonTemp.cin_viewport.z = 99998
  117.   $PokemonTemp.cin_bg = BitmapSprite.new(Graphics.width,Graphics.height,$PokemonTemp.cin_viewport)
  118.   $PokemonTemp.cin_bg.bitmap.fill_rect(0,0,Graphics.width,Graphics.height,Color.new(0,0,0))
  119.   pbMoveRoute($game_player,[PBMoveRoute::Opacity,0],true)
  120.   $game_player.transparent = true
  121.   pbWait(1)
  122.   meta = GameData::Metadata.get_player($Trainer.character_ID)
  123.   filename = pbGetPlayerCharset(meta,1,nil,true)
  124.   $PokemonTemp.cin_player = TrainerWalkingCharSprite.new(filename,$PokemonTemp.cin_viewport)
  125.   $PokemonTemp.cin_player.animspeed = $game_player.move_speed * 3
  126.   charwidth = $PokemonTemp.cin_player.bitmap.width
  127.   charheight = $PokemonTemp.cin_player.bitmap.height
  128.   $PokemonTemp.cin_player.ox = charwidth/8
  129.   $PokemonTemp.cin_player.oy = charheight/8
  130.   $PokemonTemp.cin_player.x = (Graphics.width/2)
  131.   $PokemonTemp.cin_player.y = (Graphics.height/2) - 8
  132.   pbDayNightTint($PokemonTemp.cin_player)
  133.   preplayer = (255/FADE_SPEED) * 2
  134.   premap = (255/FADE_SPEED) * 10
  135.   case $game_player.direction
  136.   when 2
  137.     $PokemonTemp.cin_player.direction = 0
  138.     $PokemonTemp.cin_player.y -= preplayer
  139.     $game_map.display_y -= premap
  140.     pbUpdateSceneMap
  141.   when 4
  142.     $PokemonTemp.cin_player.direction = 1
  143.     $PokemonTemp.cin_player.x += preplayer
  144.     $game_map.display_x += premap
  145.     pbUpdateSceneMap
  146.   when 6
  147.     $PokemonTemp.cin_player.direction = 2
  148.     $PokemonTemp.cin_player.x -= preplayer
  149.     $game_map.display_x -= premap
  150.     pbUpdateSceneMap
  151.   when 8
  152.     $PokemonTemp.cin_player.direction = 3
  153.     $PokemonTemp.cin_player.y += preplayer
  154.     $game_map.display_y += premap
  155.     pbUpdateSceneMap
  156.   end
  157.   $PokemonTemp.cin_player.z = 99999
  158.   $PokemonTemp.cin_player.opacity = 0
  159.   loop do
  160.     break if $PokemonTemp.cin_player.opacity >= 255
  161.     $PokemonTemp.cin_player.opacity += FADE_SPEED
  162.     $PokemonTemp.cin_player.update
  163.     dummyMove
  164.     Graphics.update
  165.   end
  166.   loop do
  167.     break if $PokemonTemp.cin_bg.opacity <= 0
  168.     $PokemonTemp.cin_bg.opacity -= FADE_SPEED
  169.     dummyMove
  170.     $PokemonTemp.cin_player.update
  171.     Graphics.update
  172.   end
  173.   $PokemonTemp.cin_bg.dispose
  174.   $PokemonTemp.cin_bg = nil
  175.   $PokemonTemp.cin_player.dispose
  176.   $PokemonTemp.cin_player = nil
  177.   $PokemonTemp.cin_viewport.dispose
  178.   $PokemonTemp.cin_viewport = nil
  179.   pbMoveRoute($game_player,[PBMoveRoute::Opacity,255],true)
  180.   $game_player.transparent = false
  181.   $game_map.update
  182. end
  183.  
  184. def cinTransition(mapid,x,y,dir=nil)
  185.   cinFadeOut
  186.   case dir
  187.   when nil,"retain","Retain","0"
  188.     dir = 0
  189.   when "2","up","Up"
  190.     dir = 2
  191.   when "4","left","Left"
  192.     dir = 4
  193.   when "6","right","Right"
  194.     dir = 6
  195.   when "8","down","Down"
  196.     dir = 8
  197.   end
  198.   $game_temp.player_new_map_id    = mapid
  199.   $game_temp.player_new_x         = x
  200.   $game_temp.player_new_y         = y
  201.   $game_temp.player_new_direction = dir
  202.   $scene.transfer_player
  203.   $game_map.autoplay
  204.   $game_map.refresh
  205.   cinFadeIn
  206. end
  207.  
  208. class PokemonTemp
  209.   attr_accessor :cin_player
  210.   attr_accessor :cin_bg
  211.   attr_accessor :cin_viewport
  212. end
  213.  
  214.  
  215.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement