mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-10 14:44:58 +00:00
Rearranged some script files
This commit is contained in:
1617
Data/Scripts/010_Scenes/001_Transitions.rb
Normal file
1617
Data/Scripts/010_Scenes/001_Transitions.rb
Normal file
File diff suppressed because it is too large
Load Diff
199
Data/Scripts/010_Scenes/002_EventScene.rb
Normal file
199
Data/Scripts/010_Scenes/002_EventScene.rb
Normal file
@@ -0,0 +1,199 @@
|
||||
class PictureSprite < SpriteWrapper
|
||||
def initialize(viewport, picture)
|
||||
super(viewport)
|
||||
@picture = picture
|
||||
@pictureBitmap = nil
|
||||
@customBitmap = nil
|
||||
@customBitmapIsBitmap = true
|
||||
@hue = 0
|
||||
update
|
||||
end
|
||||
|
||||
def dispose
|
||||
@pictureBitmap.dispose if @pictureBitmap
|
||||
super
|
||||
end
|
||||
|
||||
# Doesn't free the bitmap
|
||||
def setCustomBitmap(bitmap)
|
||||
@customBitmap = bitmap
|
||||
@customBitmapIsBitmap = @customBitmap.is_a?(Bitmap)
|
||||
end
|
||||
|
||||
def update
|
||||
super
|
||||
@pictureBitmap.update if @pictureBitmap
|
||||
# If picture file name is different from current one
|
||||
if @customBitmap && @picture.name==""
|
||||
self.bitmap = (@customBitmapIsBitmap) ? @customBitmap : @customBitmap.bitmap
|
||||
elsif @picture_name != @picture.name || @picture.hue.to_i != @hue.to_i
|
||||
# Remember file name to instance variables
|
||||
@picture_name = @picture.name
|
||||
@hue = @picture.hue.to_i
|
||||
# If file name is not empty
|
||||
if @picture_name == ""
|
||||
@pictureBitmap.dispose if @pictureBitmap
|
||||
@pictureBitmap = nil
|
||||
self.visible = false
|
||||
return
|
||||
end
|
||||
# Get picture graphic
|
||||
@pictureBitmap.dispose if @pictureBitmap
|
||||
@pictureBitmap = AnimatedBitmap.new(@picture_name, @hue)
|
||||
self.bitmap = (@pictureBitmap) ? @pictureBitmap.bitmap : nil
|
||||
elsif @picture_name == ""
|
||||
# Set sprite to invisible
|
||||
self.visible = false
|
||||
return
|
||||
end
|
||||
setPictureSprite(self,@picture)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
def pbTextBitmap(text, maxwidth=Graphics.width)
|
||||
dims = []
|
||||
tmp = Bitmap.new(maxwidth,Graphics.height)
|
||||
pbSetSystemFont(tmp)
|
||||
drawFormattedTextEx(tmp,0,0,maxwidth,text,Color.new(248,248,248),Color.new(168,184,184))
|
||||
return tmp
|
||||
end
|
||||
|
||||
|
||||
|
||||
#===============================================================================
|
||||
# EventScene
|
||||
#===============================================================================
|
||||
class EventScene
|
||||
attr_accessor :onCTrigger,:onBTrigger,:onUpdate
|
||||
|
||||
def initialize(viewport=nil)
|
||||
@viewport = viewport
|
||||
@onCTrigger = Event.new
|
||||
@onBTrigger = Event.new
|
||||
@onUpdate = Event.new
|
||||
@pictures = []
|
||||
@picturesprites = []
|
||||
@usersprites = []
|
||||
@disposed = false
|
||||
end
|
||||
|
||||
def dispose
|
||||
return if disposed?
|
||||
for sprite in @picturesprites
|
||||
sprite.dispose
|
||||
end
|
||||
for sprite in @usersprites
|
||||
sprite.dispose
|
||||
end
|
||||
@onCTrigger.clear
|
||||
@onBTrigger.clear
|
||||
@onUpdate.clear
|
||||
@pictures.clear
|
||||
@picturesprites.clear
|
||||
@usersprites.clear
|
||||
@disposed = true
|
||||
end
|
||||
|
||||
def disposed?
|
||||
return @disposed
|
||||
end
|
||||
|
||||
def addBitmap(x, y, bitmap)
|
||||
# _bitmap_ can be a Bitmap or an AnimatedBitmap
|
||||
# (update method isn't called if it's animated)
|
||||
# EventScene doesn't take ownership of the passed-in bitmap
|
||||
num = @pictures.length
|
||||
picture = PictureEx.new(num)
|
||||
picture.setXY(0,x,y)
|
||||
picture.setVisible(0,true)
|
||||
@pictures[num] = picture
|
||||
@picturesprites[num] = PictureSprite.new(@viewport,picture)
|
||||
@picturesprites[num].setCustomBitmap(bitmap)
|
||||
return picture
|
||||
end
|
||||
|
||||
def addLabel(x, y, width, text)
|
||||
addBitmap(x,y,pbTextBitmap(text,width))
|
||||
end
|
||||
|
||||
def addImage(x, y, name)
|
||||
num = @pictures.length
|
||||
picture = PictureEx.new(num)
|
||||
picture.name = name
|
||||
picture.setXY(0,x,y)
|
||||
picture.setVisible(0,true)
|
||||
@pictures[num] = picture
|
||||
@picturesprites[num] = PictureSprite.new(@viewport,picture)
|
||||
return picture
|
||||
end
|
||||
|
||||
def addUserSprite(sprite)
|
||||
@usersprites.push(sprite)
|
||||
end
|
||||
|
||||
def getPicture(num)
|
||||
return @pictures[num]
|
||||
end
|
||||
|
||||
def wait(frames)
|
||||
frames.times { update }
|
||||
end
|
||||
|
||||
def pictureWait(extraframes=0)
|
||||
loop do
|
||||
hasRunning = false
|
||||
for pic in @pictures
|
||||
hasRunning = true if pic.running?
|
||||
end
|
||||
break if !hasRunning
|
||||
update
|
||||
end
|
||||
extraframes.times { update }
|
||||
end
|
||||
|
||||
def update
|
||||
return if disposed?
|
||||
Graphics.update
|
||||
Input.update
|
||||
for picture in @pictures
|
||||
picture.update
|
||||
end
|
||||
for sprite in @picturesprites
|
||||
sprite.update
|
||||
end
|
||||
for sprite in @usersprites
|
||||
next if !sprite || sprite.disposed? || !sprite.is_a?(Sprite)
|
||||
sprite.update
|
||||
end
|
||||
@onUpdate.trigger(self)
|
||||
if Input.trigger?(Input::B)
|
||||
@onBTrigger.trigger(self)
|
||||
elsif Input.trigger?(Input::C)
|
||||
@onCTrigger.trigger(self)
|
||||
end
|
||||
end
|
||||
|
||||
def main
|
||||
while !disposed?
|
||||
update
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
#===============================================================================
|
||||
#
|
||||
#===============================================================================
|
||||
def pbEventScreen(cls)
|
||||
pbFadeOutIn {
|
||||
viewport = Viewport.new(0,0,Graphics.width,Graphics.height)
|
||||
viewport.z = 99999
|
||||
PBDebug.logonerr {
|
||||
cls.new(viewport).main
|
||||
}
|
||||
viewport.dispose
|
||||
}
|
||||
end
|
||||
134
Data/Scripts/010_Scenes/003_Scene_Intro.rb
Normal file
134
Data/Scripts/010_Scenes/003_Scene_Intro.rb
Normal file
@@ -0,0 +1,134 @@
|
||||
class IntroEventScene < EventScene
|
||||
TICKS_PER_PIC = 40 # 20 ticks per second, so 2 seconds
|
||||
TICKS_PER_ENTER_FLASH = 40
|
||||
FADE_TICKS = 8
|
||||
|
||||
def initialize(pics,splash,viewport=nil)
|
||||
super(nil)
|
||||
@pics = pics
|
||||
@splash = splash
|
||||
@pic = addImage(0,0,"")
|
||||
@pic.setOpacity(0,0) # set opacity to 0 after waiting 0 frames
|
||||
@pic2 = addImage(0,0,"") # flashing "Press Enter" picture
|
||||
@pic2.setOpacity(0,0)
|
||||
@index = 0
|
||||
data_system = pbLoadRxData("Data/System")
|
||||
pbBGMPlay(data_system.title_bgm)
|
||||
openPic(self,nil)
|
||||
end
|
||||
|
||||
def openPic(scene,args)
|
||||
onCTrigger.clear
|
||||
@pic.name = "Graphics/Titles/"+@pics[@index]
|
||||
# fade to opacity 255 in FADE_TICKS ticks after waiting 0 frames
|
||||
@pic.moveOpacity(0,FADE_TICKS,255)
|
||||
pictureWait
|
||||
@timer = 0 # reset the timer
|
||||
onUpdate.set(method(:picUpdate)) # call picUpdate every frame
|
||||
onCTrigger.set(method(:closePic)) # call closePic when C key is pressed
|
||||
end
|
||||
|
||||
def closePic(scene,args)
|
||||
onUpdate.clear
|
||||
onCTrigger.clear
|
||||
@pic.moveOpacity(0,FADE_TICKS,0)
|
||||
pictureWait
|
||||
@index += 1 # Move to the next picture
|
||||
if @index>=@pics.length
|
||||
openSplash(scene,args)
|
||||
else
|
||||
openPic(scene,args)
|
||||
end
|
||||
end
|
||||
|
||||
def picUpdate(scene,args)
|
||||
@timer += 1
|
||||
if @timer>TICKS_PER_PIC*Graphics.frame_rate/20
|
||||
@timer = 0
|
||||
closePic(scene,args) # Close the picture
|
||||
end
|
||||
end
|
||||
|
||||
def openSplash(scene,args)
|
||||
onUpdate.clear
|
||||
onCTrigger.clear
|
||||
@pic.name = "Graphics/Titles/"+@splash
|
||||
@pic.moveOpacity(0,FADE_TICKS,255)
|
||||
@pic2.name = "Graphics/Titles/start"
|
||||
@pic2.setXY(0,0,322)
|
||||
@pic2.setVisible(0,true)
|
||||
@pic2.moveOpacity(0,FADE_TICKS,255)
|
||||
pictureWait
|
||||
onUpdate.set(method(:splashUpdate)) # call splashUpdate every frame
|
||||
onCTrigger.set(method(:closeSplash)) # call closeSplash when C key is pressed
|
||||
end
|
||||
|
||||
def closeSplash(scene,args)
|
||||
onUpdate.clear
|
||||
onCTrigger.clear
|
||||
# Play random cry
|
||||
cry = pbCryFile(1+rand(PBSpecies.maxValue))
|
||||
pbSEPlay(cry,80,100) if cry
|
||||
@pic.moveXY(0,20,0,0)
|
||||
pictureWait
|
||||
# Fade out
|
||||
@pic.moveOpacity(0,FADE_TICKS,0)
|
||||
@pic2.clearProcesses
|
||||
@pic2.moveOpacity(0,FADE_TICKS,0)
|
||||
pbBGMStop(1.0)
|
||||
pictureWait
|
||||
scene.dispose # Close the scene
|
||||
sscene = PokemonLoad_Scene.new
|
||||
sscreen = PokemonLoadScreen.new(sscene)
|
||||
sscreen.pbStartLoadScreen
|
||||
end
|
||||
|
||||
def closeSplashDelete(scene,args)
|
||||
onUpdate.clear
|
||||
onCTrigger.clear
|
||||
# Play random cry
|
||||
cry = pbCryFile(1+rand(PBSpecies.maxValue))
|
||||
pbSEPlay(cry,80,100) if cry
|
||||
@pic.moveXY(0,20,0,0)
|
||||
pictureWait
|
||||
# Fade out
|
||||
@pic.moveOpacity(0,FADE_TICKS,0)
|
||||
@pic2.clearProcesses
|
||||
@pic2.moveOpacity(0,FADE_TICKS,0)
|
||||
pbBGMStop(1.0)
|
||||
pictureWait
|
||||
scene.dispose # Close the scene
|
||||
sscene = PokemonLoad_Scene.new
|
||||
sscreen = PokemonLoadScreen.new(sscene)
|
||||
sscreen.pbStartDeleteScreen
|
||||
end
|
||||
|
||||
def splashUpdate(scene,args)
|
||||
# Flashing of "Press Enter" picture
|
||||
if !@pic2.running?
|
||||
@pic2.moveOpacity(TICKS_PER_ENTER_FLASH*2/10,TICKS_PER_ENTER_FLASH*4/10,0)
|
||||
@pic2.moveOpacity(TICKS_PER_ENTER_FLASH*6/10,TICKS_PER_ENTER_FLASH*4/10,255)
|
||||
end
|
||||
if Input.press?(Input::DOWN) &&
|
||||
Input.press?(Input::B) &&
|
||||
Input.press?(Input::CTRL)
|
||||
closeSplashDelete(scene,args)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
class Scene_Intro
|
||||
def initialize(pics, splash = nil)
|
||||
@pics = pics
|
||||
@splash = splash
|
||||
end
|
||||
|
||||
def main
|
||||
Graphics.transition(0)
|
||||
@eventscene = IntroEventScene.new(@pics,@splash)
|
||||
@eventscene.main
|
||||
Graphics.freeze
|
||||
end
|
||||
end
|
||||
46
Data/Scripts/010_Scenes/004_Scene_Controls.rb
Normal file
46
Data/Scripts/010_Scenes/004_Scene_Controls.rb
Normal file
@@ -0,0 +1,46 @@
|
||||
#==============================================================================
|
||||
# * Scene_Controls
|
||||
#------------------------------------------------------------------------------
|
||||
# Shows a help screen listing the keyboard controls.
|
||||
# Display with:
|
||||
# pbEventScreen(ButtonEventScene)
|
||||
#==============================================================================
|
||||
class ButtonEventScene < EventScene
|
||||
def initialize(viewport=nil)
|
||||
super
|
||||
Graphics.freeze
|
||||
addImage(0,0,"Graphics/Pictures/helpbg")
|
||||
@labels=[
|
||||
addLabel(52*2,13*2,Graphics.width*3/4,_INTL("Moves the main character. Also used to scroll through list entries.")),
|
||||
addLabel(52*2,53*2,Graphics.width*3/4,_INTL("Used to confirm a choice, check things, and talk to people.")),
|
||||
addLabel(52*2,93*2,Graphics.width*3/4,_INTL("Used to exit, cancel a choice or mode, and open the pause menu.")),
|
||||
addLabel(52*2,133*2,Graphics.width*3/4,_INTL("Hold down while walking to run.")),
|
||||
addLabel(52*2,157*2,Graphics.width*3/4,_INTL("Press to use a registered Key Item."))
|
||||
]
|
||||
@keys=[
|
||||
addImage(26*2,18*2,"Graphics/Pictures/helpArrowKeys"),
|
||||
addImage(26*2,59*2,"Graphics/Pictures/helpCkey"),
|
||||
addImage(26*2,99*2,"Graphics/Pictures/helpXkey"),
|
||||
addImage(26*2,130*2,"Graphics/Pictures/helpZkey"),
|
||||
addImage(26*2,154*2,"Graphics/Pictures/helpFkey")
|
||||
]
|
||||
for key in @keys
|
||||
key.origin=PictureOrigin::Top
|
||||
end
|
||||
for i in 0...5 # Make everything show (almost) immediately
|
||||
@keys[i].setOrigin(0,PictureOrigin::Top)
|
||||
@keys[i].setOpacity(0,255)
|
||||
end
|
||||
pictureWait # Update event scene with the changes
|
||||
Graphics.transition(20)
|
||||
# Go to next screen when user presses C
|
||||
onCTrigger.set(method(:pbOnScreen1))
|
||||
end
|
||||
|
||||
def pbOnScreen1(scene,args)
|
||||
# End scene
|
||||
Graphics.freeze
|
||||
scene.dispose
|
||||
Graphics.transition(20)
|
||||
end
|
||||
end
|
||||
231
Data/Scripts/010_Scenes/005_Scene_Credits.rb
Normal file
231
Data/Scripts/010_Scenes/005_Scene_Credits.rb
Normal file
@@ -0,0 +1,231 @@
|
||||
# Backgrounds to show in credits. Found in Graphics/Titles/ folder
|
||||
CreditsBackgroundList = ["credits1","credits2","credits3","credits4","credits5"]
|
||||
CreditsMusic = "Credits"
|
||||
CreditsScrollSpeed = 2
|
||||
CreditsFrequency = 9 # Number of seconds per credits slide
|
||||
CREDITS_OUTLINE = Color.new(0,0,128, 255)
|
||||
CREDITS_SHADOW = Color.new(0,0,0, 100)
|
||||
CREDITS_FILL = Color.new(255,255,255, 255)
|
||||
|
||||
#==============================================================================
|
||||
# * Scene_Credits
|
||||
#------------------------------------------------------------------------------
|
||||
# Scrolls the credits you make below. Original Author unknown.
|
||||
#
|
||||
## Edited by MiDas Mike so it doesn't play over the Title, but runs by calling
|
||||
# the following:
|
||||
# $scene = Scene_Credits.new
|
||||
#
|
||||
## New Edit 3/6/2007 11:14 PM by AvatarMonkeyKirby.
|
||||
# Ok, what I've done is changed the part of the script that was supposed to make
|
||||
# the credits automatically end so that way they actually end! Yes, they will
|
||||
# actually end when the credits are finished! So, that will make the people you
|
||||
# should give credit to now is: Unknown, MiDas Mike, and AvatarMonkeyKirby.
|
||||
# -sincerly yours,
|
||||
# Your Beloved
|
||||
# Oh yea, and I also added a line of code that fades out the BGM so it fades
|
||||
# sooner and smoother.
|
||||
#
|
||||
## New Edit 24/1/2012 by Maruno.
|
||||
# Added the ability to split a line into two halves with <s>, with each half
|
||||
# aligned towards the centre. Please also credit me if used.
|
||||
#
|
||||
## New Edit 22/2/2012 by Maruno.
|
||||
# Credits now scroll properly when played with a zoom factor of 0.5. Music can
|
||||
# now be defined. Credits can't be skipped during their first play.
|
||||
#
|
||||
## New Edit 25/3/2020 by Maruno.
|
||||
# Scroll speed is now independent of frame rate. Now supports non-integer values
|
||||
# for CreditsScrollSpeed.
|
||||
#
|
||||
## New Edit 21/8/2020 by Marin.
|
||||
# Now automatically inserts the credits from the plugins that have been
|
||||
# registered through the PluginManager module.
|
||||
#==============================================================================
|
||||
|
||||
class Scene_Credits
|
||||
|
||||
# This next piece of code is the credits.
|
||||
#Start Editing
|
||||
CREDIT=<<_END_
|
||||
|
||||
Your credits go here.
|
||||
|
||||
Your credits go here.
|
||||
|
||||
Your credits go here.
|
||||
|
||||
Your credits go here.
|
||||
|
||||
Your credits go here.
|
||||
|
||||
{INSERTS_PLUGIN_CREDITS_DO_NOT_REMOVE}
|
||||
"Pokémon Essentials" was created by:
|
||||
Flameguru
|
||||
Poccil (Peter O.)
|
||||
Maruno
|
||||
|
||||
With contributions from:
|
||||
AvatarMonkeyKirby<s>Marin
|
||||
Boushy<s>MiDas Mike
|
||||
Brother1440<s>Near Fantastica
|
||||
FL.<s>PinkMan
|
||||
Genzai Kawakami<s>Popper
|
||||
help-14<s>Rataime
|
||||
IceGod64<s>SoundSpawn
|
||||
Jacob O. Wobbrock<s>the__end
|
||||
KitsuneKouta<s>Venom12
|
||||
Lisa Anthony<s>Wachunga
|
||||
Luka S.J.<s>
|
||||
and everyone else who helped out
|
||||
|
||||
|
||||
|
||||
"RPG Maker XP" by:
|
||||
Enterbrain
|
||||
|
||||
Pokémon is owned by:
|
||||
The Pokémon Company
|
||||
Nintendo
|
||||
Affiliated with Game Freak
|
||||
|
||||
This is a non-profit fan-made game.
|
||||
No copyright infringements intended.
|
||||
Please support the official games!
|
||||
|
||||
_END_
|
||||
#Stop Editing
|
||||
|
||||
def main
|
||||
#-------------------------------
|
||||
# Animated Background Setup
|
||||
#-------------------------------
|
||||
@sprite = IconSprite.new(0,0)
|
||||
@backgroundList = CreditsBackgroundList
|
||||
@frameCounter = 0
|
||||
# Number of game frames per background frame
|
||||
@framesPerBackground = CreditsFrequency * Graphics.frame_rate
|
||||
@sprite.setBitmap("Graphics/Titles/"+@backgroundList[0])
|
||||
#------------------
|
||||
# Credits text Setup
|
||||
#------------------
|
||||
plugin_credits = ""
|
||||
PluginManager.plugins.each do |plugin|
|
||||
pcred = PluginManager.credits(plugin)
|
||||
plugin_credits << "\"#{plugin}\" version #{PluginManager.version(plugin)}\n"
|
||||
if pcred.size >= 5
|
||||
plugin_credits << pcred[0] + "\n"
|
||||
i = 1
|
||||
until i >= pcred.size
|
||||
plugin_credits << pcred[i] + "<s>" + (pcred[i + 1] || "") + "\n"
|
||||
i += 2
|
||||
end
|
||||
else
|
||||
pcred.each do |name|
|
||||
plugin_credits << name + "\n"
|
||||
end
|
||||
end
|
||||
plugin_credits << "\n"
|
||||
end
|
||||
CREDIT.gsub!(/{INSERTS_PLUGIN_CREDITS_DO_NOT_REMOVE}/, plugin_credits)
|
||||
credit_lines = CREDIT.split(/\n/)
|
||||
credit_bitmap = Bitmap.new(Graphics.width,32 * credit_lines.size)
|
||||
credit_lines.each_index do |i|
|
||||
line = credit_lines[i]
|
||||
line = line.split("<s>")
|
||||
# LINE ADDED: If you use in your own game, you should remove this line
|
||||
pbSetSystemFont(credit_bitmap) # <--- This line was added
|
||||
x = 0
|
||||
xpos = 0
|
||||
align = 1 # Centre align
|
||||
linewidth = Graphics.width
|
||||
for j in 0...line.length
|
||||
if line.length>1
|
||||
xpos = (j==0) ? 0 : 20 + Graphics.width/2
|
||||
align = (j==0) ? 2 : 0 # Right align : left align
|
||||
linewidth = Graphics.width/2 - 20
|
||||
end
|
||||
credit_bitmap.font.color = CREDITS_SHADOW
|
||||
credit_bitmap.draw_text(xpos,i * 32 + 8,linewidth,32,line[j],align)
|
||||
credit_bitmap.font.color = CREDITS_OUTLINE
|
||||
credit_bitmap.draw_text(xpos + 2,i * 32 - 2,linewidth,32,line[j],align)
|
||||
credit_bitmap.draw_text(xpos,i * 32 - 2,linewidth,32,line[j],align)
|
||||
credit_bitmap.draw_text(xpos - 2,i * 32 - 2,linewidth,32,line[j],align)
|
||||
credit_bitmap.draw_text(xpos + 2,i * 32,linewidth,32,line[j],align)
|
||||
credit_bitmap.draw_text(xpos - 2,i * 32,linewidth,32,line[j],align)
|
||||
credit_bitmap.draw_text(xpos + 2,i * 32 + 2,linewidth,32,line[j],align)
|
||||
credit_bitmap.draw_text(xpos,i * 32 + 2,linewidth,32,line[j],align)
|
||||
credit_bitmap.draw_text(xpos - 2,i * 32 + 2,linewidth,32,line[j],align)
|
||||
credit_bitmap.font.color = CREDITS_FILL
|
||||
credit_bitmap.draw_text(xpos,i * 32,linewidth,32,line[j],align)
|
||||
end
|
||||
end
|
||||
@trim = Graphics.height/10
|
||||
@realOY = -(Graphics.height-@trim) # -430
|
||||
@oyChangePerFrame = CreditsScrollSpeed*20.0/Graphics.frame_rate
|
||||
@credit_sprite = Sprite.new(Viewport.new(0,@trim,Graphics.width,Graphics.height-(@trim*2)))
|
||||
@credit_sprite.bitmap = credit_bitmap
|
||||
@credit_sprite.z = 9998
|
||||
@credit_sprite.oy = @realOY
|
||||
@bg_index = 0
|
||||
@zoom_adjustment = 1.0/$ResizeFactor
|
||||
@last_flag = false
|
||||
#--------
|
||||
# Setup
|
||||
#--------
|
||||
# Stops all audio but background music
|
||||
previousBGM = $game_system.getPlayingBGM
|
||||
pbMEStop
|
||||
pbBGSStop
|
||||
pbSEStop
|
||||
pbBGMFade(2.0)
|
||||
pbBGMPlay(CreditsMusic)
|
||||
Graphics.transition(20)
|
||||
loop do
|
||||
Graphics.update
|
||||
Input.update
|
||||
update
|
||||
break if $scene != self
|
||||
end
|
||||
Graphics.freeze
|
||||
@sprite.dispose
|
||||
@credit_sprite.dispose
|
||||
$PokemonGlobal.creditsPlayed = true
|
||||
pbBGMPlay(previousBGM)
|
||||
end
|
||||
|
||||
# Check if the credits should be cancelled
|
||||
def cancel?
|
||||
if Input.trigger?(Input::C) && $PokemonGlobal.creditsPlayed
|
||||
$scene = Scene_Map.new
|
||||
pbBGMFade(1.0)
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
# Checks if credits bitmap has reached its ending point
|
||||
def last?
|
||||
if @realOY > @credit_sprite.bitmap.height + @trim
|
||||
$scene = ($game_map) ? Scene_Map.new : nil
|
||||
pbBGMFade(2.0)
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
def update
|
||||
@frameCounter += 1
|
||||
# Go to next slide
|
||||
if @frameCounter >= @framesPerBackground
|
||||
@frameCounter -= @framesPerBackground
|
||||
@bg_index += 1
|
||||
@bg_index = 0 if @bg_index >= @backgroundList.length
|
||||
@sprite.setBitmap("Graphics/Titles/"+@backgroundList[@bg_index])
|
||||
end
|
||||
return if cancel?
|
||||
return if last?
|
||||
@realOY += @oyChangePerFrame
|
||||
@credit_sprite.oy = @realOY
|
||||
end
|
||||
end
|
||||
52
Data/Scripts/010_Scenes/006_Scene_Movie.rb
Normal file
52
Data/Scripts/010_Scenes/006_Scene_Movie.rb
Normal file
@@ -0,0 +1,52 @@
|
||||
#===============================================================================
|
||||
# ** Scene_Movie class, created by SoundSpawn, fixed by Popper.
|
||||
#-------------------------------------------------------------------------------
|
||||
# Instruction
|
||||
# 1) Movies must be in a new folder called "Movies" in your directory.
|
||||
# 2) If you call this script from an event, e.g.
|
||||
# Call Script: $scene = Scene_Movie.new("INTRO")
|
||||
# 3) Have fun playing movies with this script!
|
||||
#===============================================================================
|
||||
class Scene_Movie
|
||||
def initialize(movie)
|
||||
@movie_name = RTP.getPath("Movies\\"+movie+".avi").gsub(/\//,"\\")
|
||||
end
|
||||
|
||||
def main
|
||||
@temp = Win32API.pbFindRgssWindow.to_s
|
||||
movie = Win32API.new('winmm','mciSendString','%w(p,p,l,l)','V')
|
||||
x=movie.call("open \""+@movie_name+
|
||||
"\" alias FILE style 1073741824 parent " + @temp.to_s,0,0,0)
|
||||
@message = Win32API.new('user32','SendMessage','%w(l,l,l,l)','V')
|
||||
@detector = Win32API.new('user32','GetSystemMetrics','%w(l)','L')
|
||||
@width = @detector.call(0)
|
||||
if @width == 640
|
||||
#fullscreen
|
||||
Graphics.update
|
||||
sleep(0.1)
|
||||
Graphics.update
|
||||
sleep(0.1)
|
||||
Graphics.update
|
||||
sleep(0.1)
|
||||
#fullscreen
|
||||
end
|
||||
status = " " * 255
|
||||
x=movie.call("play FILE",0,0,0)
|
||||
loop do
|
||||
sleep(0.1)
|
||||
@message.call(@temp.to_i,11,0,0)
|
||||
Graphics.update
|
||||
@message.call(@temp.to_i,11,1,0)
|
||||
Input.update
|
||||
movie.call("status FILE mode",status,255,0)
|
||||
true_status = status.unpack("aaaa")
|
||||
break if true_status.to_s != "play"
|
||||
if Input.trigger?(Input::B)
|
||||
movie.call("close FILE",0,0,0)
|
||||
$scene = Scene_Map.new
|
||||
break
|
||||
end
|
||||
end
|
||||
$scene = Scene_Map.new
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user