mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-07 13:15:01 +00:00
A lot of FPS agnosticism, added def lerp
This commit is contained in:
@@ -52,50 +52,52 @@ class PokemonEggHatch_Scene
|
||||
def pbMain
|
||||
pbBGMPlay("Evolution")
|
||||
# Egg animation
|
||||
updateScene(Graphics.frame_rate * 15 / 10)
|
||||
updateScene(1.5)
|
||||
pbPositionHatchMask(0)
|
||||
pbSEPlay("Battle ball shake")
|
||||
swingEgg(4)
|
||||
updateScene(Graphics.frame_rate * 2 / 10)
|
||||
updateScene(0.2)
|
||||
pbPositionHatchMask(1)
|
||||
pbSEPlay("Battle ball shake")
|
||||
swingEgg(4)
|
||||
updateScene(Graphics.frame_rate * 4 / 10)
|
||||
updateScene(0.4)
|
||||
pbPositionHatchMask(2)
|
||||
pbSEPlay("Battle ball shake")
|
||||
swingEgg(8, 2)
|
||||
updateScene(Graphics.frame_rate * 4 / 10)
|
||||
updateScene(0.4)
|
||||
pbPositionHatchMask(3)
|
||||
pbSEPlay("Battle ball shake")
|
||||
swingEgg(16, 4)
|
||||
updateScene(Graphics.frame_rate * 2 / 10)
|
||||
updateScene(0.2)
|
||||
pbPositionHatchMask(4)
|
||||
pbSEPlay("Battle recall")
|
||||
# Fade and change the sprite
|
||||
fadeTime = Graphics.frame_rate * 4 / 10
|
||||
toneDiff = (255.0 / fadeTime).ceil
|
||||
(1..fadeTime).each do |i|
|
||||
@sprites["pokemon"].tone = Tone.new(i * toneDiff, i * toneDiff, i * toneDiff)
|
||||
@sprites["overlay"].opacity = i * toneDiff
|
||||
timer_start = System.uptime
|
||||
loop do
|
||||
tone_val = lerp(0, 255, 0.4, timer_start, System.uptime)
|
||||
@sprites["pokemon"].tone = Tone.new(tone_val, tone_val, tone_val)
|
||||
@sprites["overlay"].opacity = tone_val
|
||||
updateScene
|
||||
break if tone_val >= 255
|
||||
end
|
||||
updateScene(Graphics.frame_rate * 3 / 4)
|
||||
updateScene(0.75)
|
||||
@sprites["pokemon"].setPokemonBitmap(@pokemon) # Pokémon sprite
|
||||
@sprites["pokemon"].x = Graphics.width / 2
|
||||
@sprites["pokemon"].y = 264
|
||||
@pokemon.species_data.apply_metrics_to_sprite(@sprites["pokemon"], 1)
|
||||
@sprites["hatch"].visible = false
|
||||
(1..fadeTime).each do |i|
|
||||
@sprites["pokemon"].tone = Tone.new(255 - (i * toneDiff), 255 - (i * toneDiff), 255 - (i * toneDiff))
|
||||
@sprites["overlay"].opacity = 255 - (i * toneDiff)
|
||||
timer_start = System.uptime
|
||||
loop do
|
||||
tone_val = lerp(255, 0, 0.4, timer_start, System.uptime)
|
||||
@sprites["pokemon"].tone = Tone.new(tone_val, tone_val, tone_val)
|
||||
@sprites["overlay"].opacity = tone_val
|
||||
updateScene
|
||||
break if tone_val <= 0
|
||||
end
|
||||
@sprites["pokemon"].tone = Tone.new(0, 0, 0)
|
||||
@sprites["overlay"].opacity = 0
|
||||
# Finish scene
|
||||
frames = (GameData::Species.cry_length(@pokemon) * Graphics.frame_rate).ceil
|
||||
cry_duration = GameData::Species.cry_length(@pokemon)
|
||||
@pokemon.play_cry
|
||||
updateScene(frames + 4)
|
||||
updateScene(cry_duration + 0.1)
|
||||
pbBGMStop
|
||||
pbMEPlay("Evolution success")
|
||||
@pokemon.name = nil
|
||||
@@ -140,8 +142,8 @@ class PokemonEggHatch_Scene
|
||||
|
||||
def swingEgg(speed, swingTimes = 1)
|
||||
@sprites["hatch"].visible = true
|
||||
speed = speed.to_f * 20 / Graphics.frame_rate
|
||||
amplitude = 8
|
||||
duration = 0.05 * amplitude / speed
|
||||
targets = []
|
||||
swingTimes.times do
|
||||
targets.push(@sprites["pokemon"].x + amplitude)
|
||||
@@ -149,21 +151,23 @@ class PokemonEggHatch_Scene
|
||||
end
|
||||
targets.push(@sprites["pokemon"].x)
|
||||
targets.each_with_index do |target, i|
|
||||
timer_start = System.uptime
|
||||
start_x = @sprites["pokemon"].x
|
||||
loop do
|
||||
break if i.even? && @sprites["pokemon"].x >= target
|
||||
break if i.odd? && @sprites["pokemon"].x <= target
|
||||
@sprites["pokemon"].x += speed
|
||||
@sprites["hatch"].x = @sprites["pokemon"].x
|
||||
@sprites["pokemon"].x = lerp(start_x, target, duration, timer_start, System.uptime)
|
||||
@sprites["hatch"].x = @sprites["pokemon"].x
|
||||
updateScene
|
||||
end
|
||||
speed *= -1
|
||||
end
|
||||
@sprites["pokemon"].x = targets[targets.length - 1]
|
||||
@sprites["hatch"].x = @sprites["pokemon"].x
|
||||
end
|
||||
|
||||
def updateScene(frames = 1) # Can be used for "wait" effect
|
||||
frames.times do
|
||||
def updateScene(duration = 0.01) # Can be used for "wait" effect
|
||||
timer_start = System.uptime
|
||||
while System.uptime - timer_start < duration
|
||||
Graphics.update
|
||||
Input.update
|
||||
self.update
|
||||
|
||||
@@ -654,14 +654,18 @@ class PokemonParty_Scene
|
||||
pbSEPlay("GUI party switch")
|
||||
oldsprite = @sprites["pokemon#{oldid}"]
|
||||
newsprite = @sprites["pokemon#{newid}"]
|
||||
timeTaken = Graphics.frame_rate * 4 / 10
|
||||
distancePerFrame = (Graphics.width / (2.0 * timeTaken)).ceil
|
||||
timeTaken.times do
|
||||
oldsprite.x += (oldid & 1) == 0 ? -distancePerFrame : distancePerFrame
|
||||
newsprite.x += (newid & 1) == 0 ? -distancePerFrame : distancePerFrame
|
||||
old_start_x = oldsprite.x
|
||||
new_start_x = newsprite.x
|
||||
old_mult = oldid.even? ? -1 : 1
|
||||
new_mult = newid.even? ? -1 : 1
|
||||
timer_start = System.uptime
|
||||
loop do
|
||||
oldsprite.x = lerp(old_start_x, old_start_x + old_mult * Graphics.width / 2, 0.4, timer_start, System.uptime)
|
||||
newsprite.x = lerp(new_start_x, new_start_x + new_mult * Graphics.width / 2, 0.4, timer_start, System.uptime)
|
||||
Graphics.update
|
||||
Input.update
|
||||
self.update
|
||||
break if oldsprite.x == old_start_x + old_mult * Graphics.width / 2
|
||||
end
|
||||
end
|
||||
|
||||
@@ -671,14 +675,18 @@ class PokemonParty_Scene
|
||||
newsprite = @sprites["pokemon#{newid}"]
|
||||
oldsprite.pokemon = @party[oldid]
|
||||
newsprite.pokemon = @party[newid]
|
||||
timeTaken = Graphics.frame_rate * 4 / 10
|
||||
distancePerFrame = (Graphics.width / (2.0 * timeTaken)).ceil
|
||||
timeTaken.times do
|
||||
oldsprite.x -= (oldid & 1) == 0 ? -distancePerFrame : distancePerFrame
|
||||
newsprite.x -= (newid & 1) == 0 ? -distancePerFrame : distancePerFrame
|
||||
old_start_x = oldsprite.x
|
||||
new_start_x = newsprite.x
|
||||
old_mult = oldid.even? ? -1 : 1
|
||||
new_mult = newid.even? ? -1 : 1
|
||||
timer_start = System.uptime
|
||||
loop do
|
||||
oldsprite.x = lerp(old_start_x, old_start_x - old_mult * Graphics.width / 2, 0.4, timer_start, System.uptime)
|
||||
newsprite.x = lerp(new_start_x, new_start_x - new_mult * Graphics.width / 2, 0.4, timer_start, System.uptime)
|
||||
Graphics.update
|
||||
Input.update
|
||||
self.update
|
||||
break if oldsprite.x == old_start_x - old_mult * Graphics.width / 2
|
||||
end
|
||||
Settings::MAX_PARTY_SIZE.times do |i|
|
||||
@sprites["pokemon#{i}"].preselected = false
|
||||
|
||||
@@ -250,17 +250,21 @@ class PokemonRegionMap_Scene
|
||||
y_offset = 0
|
||||
new_x = 0
|
||||
new_y = 0
|
||||
dist_per_frame = 8 * 20 / Graphics.frame_rate
|
||||
timer_start = System.uptime
|
||||
loop do
|
||||
Graphics.update
|
||||
Input.update
|
||||
pbUpdate
|
||||
if x_offset != 0 || y_offset != 0
|
||||
x_offset += (x_offset > 0) ? -dist_per_frame : (x_offset < 0) ? dist_per_frame : 0
|
||||
y_offset += (y_offset > 0) ? -dist_per_frame : (y_offset < 0) ? dist_per_frame : 0
|
||||
@sprites["cursor"].x = new_x - x_offset
|
||||
@sprites["cursor"].y = new_y - y_offset
|
||||
next
|
||||
if x_offset != 0
|
||||
@sprites["cursor"].x = lerp(new_x - x_offset, new_x, 0.1, timer_start, System.uptime)
|
||||
x_offset = 0 if @sprites["cursor"].x == new_x
|
||||
end
|
||||
if y_offset != 0
|
||||
@sprites["cursor"].y = lerp(new_y - y_offset, new_y, 0.1, timer_start, System.uptime)
|
||||
y_offset = 0 if @sprites["cursor"].y == new_y
|
||||
end
|
||||
next if x_offset != 0 || y_offset != 0
|
||||
end
|
||||
ox = 0
|
||||
oy = 0
|
||||
@@ -283,6 +287,7 @@ class PokemonRegionMap_Scene
|
||||
y_offset = oy * SQUARE_HEIGHT
|
||||
new_x = @sprites["cursor"].x + x_offset
|
||||
new_y = @sprites["cursor"].y + y_offset
|
||||
timer_start = System.uptime
|
||||
end
|
||||
@sprites["mapbottom"].maplocation = pbGetMapLocation(@map_x, @map_y)
|
||||
@sprites["mapbottom"].mapdetails = pbGetMapDetails(@map_x, @map_y)
|
||||
|
||||
@@ -4,20 +4,20 @@
|
||||
class PokemonLoadPanel < Sprite
|
||||
attr_reader :selected
|
||||
|
||||
TEXTCOLOR = Color.new(232, 232, 232)
|
||||
TEXTSHADOWCOLOR = Color.new(136, 136, 136)
|
||||
MALETEXTCOLOR = Color.new(56, 160, 248)
|
||||
MALETEXTSHADOWCOLOR = Color.new(56, 104, 168)
|
||||
FEMALETEXTCOLOR = Color.new(240, 72, 88)
|
||||
FEMALETEXTSHADOWCOLOR = Color.new(160, 64, 64)
|
||||
TEXT_COLOR = Color.new(232, 232, 232)
|
||||
TEXT_SHADOW_COLOR = Color.new(136, 136, 136)
|
||||
MALE_TEXT_COLOR = Color.new(56, 160, 248)
|
||||
MALE_TEXT_SHADOW_COLOR = Color.new(56, 104, 168)
|
||||
FEMALE_TEXT_COLOR = Color.new(240, 72, 88)
|
||||
FEMALE_TEXT_SHADOW_COLOR = Color.new(160, 64, 64)
|
||||
|
||||
def initialize(index, title, isContinue, trainer, framecount, stats, mapid, viewport = nil)
|
||||
def initialize(index, title, isContinue, trainer, stats, mapid, viewport = nil)
|
||||
super(viewport)
|
||||
@index = index
|
||||
@title = title
|
||||
@isContinue = isContinue
|
||||
@trainer = trainer
|
||||
@totalsec = (stats) ? stats.play_time.to_i : ((framecount || 0) / Graphics.frame_rate)
|
||||
@totalsec = stats.play_time.to_i
|
||||
@mapid = mapid
|
||||
@selected = (index == 0)
|
||||
@bgbitmap = AnimatedBitmap.new("Graphics/UI/Load/panels")
|
||||
@@ -62,31 +62,31 @@ class PokemonLoadPanel < Sprite
|
||||
end
|
||||
textpos = []
|
||||
if @isContinue
|
||||
textpos.push([@title, 32, 16, :left, TEXTCOLOR, TEXTSHADOWCOLOR])
|
||||
textpos.push([_INTL("Badges:"), 32, 118, :left, TEXTCOLOR, TEXTSHADOWCOLOR])
|
||||
textpos.push([@trainer.badge_count.to_s, 206, 118, :right, TEXTCOLOR, TEXTSHADOWCOLOR])
|
||||
textpos.push([_INTL("Pokédex:"), 32, 150, :left, TEXTCOLOR, TEXTSHADOWCOLOR])
|
||||
textpos.push([@trainer.pokedex.seen_count.to_s, 206, 150, :right, TEXTCOLOR, TEXTSHADOWCOLOR])
|
||||
textpos.push([_INTL("Time:"), 32, 182, :left, TEXTCOLOR, TEXTSHADOWCOLOR])
|
||||
textpos.push([@title, 32, 16, :left, TEXT_COLOR, TEXT_SHADOW_COLOR])
|
||||
textpos.push([_INTL("Badges:"), 32, 118, :left, TEXT_COLOR, TEXT_SHADOW_COLOR])
|
||||
textpos.push([@trainer.badge_count.to_s, 206, 118, :right, TEXT_COLOR, TEXT_SHADOW_COLOR])
|
||||
textpos.push([_INTL("Pokédex:"), 32, 150, :left, TEXT_COLOR, TEXT_SHADOW_COLOR])
|
||||
textpos.push([@trainer.pokedex.seen_count.to_s, 206, 150, :right, TEXT_COLOR, TEXT_SHADOW_COLOR])
|
||||
textpos.push([_INTL("Time:"), 32, 182, :left, TEXT_COLOR, TEXT_SHADOW_COLOR])
|
||||
hour = @totalsec / 60 / 60
|
||||
min = @totalsec / 60 % 60
|
||||
if hour > 0
|
||||
textpos.push([_INTL("{1}h {2}m", hour, min), 206, 182, :right, TEXTCOLOR, TEXTSHADOWCOLOR])
|
||||
textpos.push([_INTL("{1}h {2}m", hour, min), 206, 182, :right, TEXT_COLOR, TEXT_SHADOW_COLOR])
|
||||
else
|
||||
textpos.push([_INTL("{1}m", min), 206, 182, :right, TEXTCOLOR, TEXTSHADOWCOLOR])
|
||||
textpos.push([_INTL("{1}m", min), 206, 182, :right, TEXT_COLOR, TEXT_SHADOW_COLOR])
|
||||
end
|
||||
if @trainer.male?
|
||||
textpos.push([@trainer.name, 112, 70, :left, MALETEXTCOLOR, MALETEXTSHADOWCOLOR])
|
||||
textpos.push([@trainer.name, 112, 70, :left, MALE_TEXT_COLOR, MALE_TEXT_SHADOW_COLOR])
|
||||
elsif @trainer.female?
|
||||
textpos.push([@trainer.name, 112, 70, :left, FEMALETEXTCOLOR, FEMALETEXTSHADOWCOLOR])
|
||||
textpos.push([@trainer.name, 112, 70, :left, FEMALE_TEXT_COLOR, FEMALE_TEXT_SHADOW_COLOR])
|
||||
else
|
||||
textpos.push([@trainer.name, 112, 70, :left, TEXTCOLOR, TEXTSHADOWCOLOR])
|
||||
textpos.push([@trainer.name, 112, 70, :left, TEXT_COLOR, TEXT_SHADOW_COLOR])
|
||||
end
|
||||
mapname = pbGetMapNameFromId(@mapid)
|
||||
mapname.gsub!(/\\PN/, @trainer.name)
|
||||
textpos.push([mapname, 386, 16, :right, TEXTCOLOR, TEXTSHADOWCOLOR])
|
||||
textpos.push([mapname, 386, 16, :right, TEXT_COLOR, TEXT_SHADOW_COLOR])
|
||||
else
|
||||
textpos.push([@title, 32, 14, :left, TEXTCOLOR, TEXTSHADOWCOLOR])
|
||||
textpos.push([@title, 32, 14, :left, TEXT_COLOR, TEXT_SHADOW_COLOR])
|
||||
end
|
||||
pbDrawTextPositions(self.bitmap, textpos)
|
||||
end
|
||||
@@ -98,7 +98,7 @@ end
|
||||
#
|
||||
#===============================================================================
|
||||
class PokemonLoad_Scene
|
||||
def pbStartScene(commands, show_continue, trainer, frame_count, stats, map_id)
|
||||
def pbStartScene(commands, show_continue, trainer, stats, map_id)
|
||||
@commands = commands
|
||||
@sprites = {}
|
||||
@viewport = Viewport.new(0, 0, Graphics.width, Graphics.height)
|
||||
@@ -107,8 +107,7 @@ class PokemonLoad_Scene
|
||||
y = 32
|
||||
commands.length.times do |i|
|
||||
@sprites["panel#{i}"] = PokemonLoadPanel.new(
|
||||
i, commands[i], (show_continue) ? (i == 0) : false, trainer,
|
||||
frame_count, stats, map_id, @viewport
|
||||
i, commands[i], (show_continue) ? (i == 0) : false, trainer, stats, map_id, @viewport
|
||||
)
|
||||
@sprites["panel#{i}"].x = 48
|
||||
@sprites["panel#{i}"].y = y
|
||||
@@ -298,8 +297,7 @@ class PokemonLoadScreen
|
||||
commands[cmd_debug = commands.length] = _INTL("Debug") if $DEBUG
|
||||
commands[cmd_quit = commands.length] = _INTL("Quit Game")
|
||||
map_id = show_continue ? @save_data[:map_factory].map.map_id : 0
|
||||
@scene.pbStartScene(commands, show_continue, @save_data[:player],
|
||||
@save_data[:frame_count] || 0, @save_data[:stats], map_id)
|
||||
@scene.pbStartScene(commands, show_continue, @save_data[:player], @save_data[:stats], map_id)
|
||||
@scene.pbSetParty(@save_data[:player]) if show_continue
|
||||
@scene.pbStartScene2
|
||||
loop do
|
||||
|
||||
@@ -313,14 +313,10 @@ class PokemonMart_Scene
|
||||
@adapter = adapter
|
||||
@viewport2 = Viewport.new(0, 0, Graphics.width, Graphics.height)
|
||||
@viewport2.z = 99999
|
||||
numFrames = Graphics.frame_rate * 4 / 10
|
||||
alphaDiff = (255.0 / numFrames).ceil
|
||||
(0..numFrames).each do |j|
|
||||
col = Color.new(0, 0, 0, j * alphaDiff)
|
||||
@viewport2.color = col
|
||||
Graphics.update
|
||||
Input.update
|
||||
pbWait(0.4) do |delta_t|
|
||||
@viewport2.color.alpha = lerp(0, 255, 0.4, delta_t)
|
||||
end
|
||||
@viewport2.color.alpha = 255
|
||||
@subscene.pbStartScene(bag)
|
||||
@viewport = Viewport.new(0, 0, Graphics.width, Graphics.height)
|
||||
@viewport.z = 99999
|
||||
@@ -357,13 +353,8 @@ class PokemonMart_Scene
|
||||
@subscene&.pbEndScene
|
||||
pbDisposeSpriteHash(@sprites)
|
||||
if @viewport2
|
||||
numFrames = Graphics.frame_rate * 4 / 10
|
||||
alphaDiff = (255.0 / numFrames).ceil
|
||||
(0..numFrames).each do |j|
|
||||
col = Color.new(0, 0, 0, (numFrames - j) * alphaDiff)
|
||||
@viewport2.color = col
|
||||
Graphics.update
|
||||
Input.update
|
||||
pbWait(0.4) do |delta_t|
|
||||
@viewport2.color.alpha = lerp(255, 0, 0.4, delta_t)
|
||||
end
|
||||
@viewport2.dispose
|
||||
end
|
||||
@@ -402,21 +393,25 @@ class PokemonMart_Scene
|
||||
cw.text = msg
|
||||
pbBottomLeftLines(cw, 2)
|
||||
cw.visible = true
|
||||
i = 0
|
||||
pbPlayDecisionSE
|
||||
refreshed_after_busy = false
|
||||
timer_start = System.uptime
|
||||
loop do
|
||||
Graphics.update
|
||||
Input.update
|
||||
self.update
|
||||
if !cw.busy?
|
||||
return if brief
|
||||
pbRefresh if i == 0
|
||||
if !refreshed_after_busy
|
||||
pbRefresh
|
||||
timer_start = System.uptime
|
||||
refreshed_after_busy = true
|
||||
end
|
||||
end
|
||||
if Input.trigger?(Input::USE) || Input.trigger?(Input::BACK)
|
||||
cw.resume if cw.busy?
|
||||
end
|
||||
return if i >= Graphics.frame_rate * 3 / 2
|
||||
i += 1 if !cw.busy?
|
||||
return if refreshed_after_busy && System.uptime - timer_start >= 1.5
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -248,21 +248,25 @@ class BattlePointShop_Scene
|
||||
cw.text = msg
|
||||
pbBottomLeftLines(cw, 2)
|
||||
cw.visible = true
|
||||
i = 0
|
||||
pbPlayDecisionSE
|
||||
refreshed_after_busy = false
|
||||
timer_start = System.uptime
|
||||
loop do
|
||||
Graphics.update
|
||||
Input.update
|
||||
self.update
|
||||
if !cw.busy?
|
||||
return if brief
|
||||
pbRefresh if i == 0
|
||||
if !refreshed_after_busy
|
||||
pbRefresh
|
||||
timer_start = System.uptime
|
||||
refreshed_after_busy = true
|
||||
end
|
||||
end
|
||||
if Input.trigger?(Input::USE) || Input.trigger?(Input::BACK)
|
||||
cw.resume if cw.busy?
|
||||
end
|
||||
return if i >= Graphics.frame_rate * 3 / 2
|
||||
i += 1 if !cw.busy?
|
||||
return if refreshed_after_busy && System.uptime - timer_start >= 1.5
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -286,32 +286,28 @@ def pbDownloadMysteryGift(trainer)
|
||||
sprite.x = Graphics.width / 2
|
||||
sprite.y = -sprite.height / 2
|
||||
end
|
||||
distanceDiff = 8 * 20 / Graphics.frame_rate
|
||||
timer_start = System.uptime
|
||||
start_y = sprite.y
|
||||
loop do
|
||||
sprite.y = lerp(start_y, Graphics.height / 2, 1.5, timer_start, System.uptime)
|
||||
Graphics.update
|
||||
Input.update
|
||||
sprite.update
|
||||
sprite.y += distanceDiff
|
||||
break if sprite.y >= Graphics.height / 2
|
||||
end
|
||||
pbMEPlay("Battle capture success")
|
||||
(Graphics.frame_rate * 3).times do
|
||||
Graphics.update
|
||||
Input.update
|
||||
sprite.update
|
||||
pbUpdateSceneMap
|
||||
end
|
||||
pbWait(3.0) { sprite.update }
|
||||
sprites["msgwindow"].visible = true
|
||||
pbMessageDisplay(sprites["msgwindow"], _INTL("The gift has been received!") + "\1") { sprite.update }
|
||||
pbMessageDisplay(sprites["msgwindow"], _INTL("Please pick up your gift from the deliveryman in any Poké Mart.")) { sprite.update }
|
||||
trainer.mystery_gifts.push(gift)
|
||||
pending.delete_at(command)
|
||||
opacityDiff = 16 * 20 / Graphics.frame_rate
|
||||
timer_start = System.uptime
|
||||
loop do
|
||||
sprite.opacity = lerp(255, 0, 1.5, timer_start, System.uptime)
|
||||
Graphics.update
|
||||
Input.update
|
||||
sprite.update
|
||||
sprite.opacity -= opacityDiff
|
||||
break if sprite.opacity <= 0
|
||||
end
|
||||
sprite.dispose
|
||||
|
||||
@@ -524,17 +524,10 @@ class PokemonEntryScene2
|
||||
@sprites["toptab"].bitmap = @bitmaps[(newtab % @@Characters.length) + @@Characters.length]
|
||||
# Move bottom (old) tab down off the screen, and move top (new) tab right
|
||||
# onto the screen
|
||||
deltaX = 48 * 20 / Graphics.frame_rate
|
||||
deltaY = 24 * 20 / Graphics.frame_rate
|
||||
timer_start = System.uptime
|
||||
loop do
|
||||
if @sprites["bottomtab"].y < 414
|
||||
@sprites["bottomtab"].y += deltaY
|
||||
@sprites["bottomtab"].y = 414 if @sprites["bottomtab"].y > 414
|
||||
end
|
||||
if @sprites["toptab"].x < 22
|
||||
@sprites["toptab"].x += deltaX
|
||||
@sprites["toptab"].x = 22 if @sprites["toptab"].x > 22
|
||||
end
|
||||
@sprites["bottomtab"].y = lerp(162, 414, 0.5, timer_start, System.uptime)
|
||||
@sprites["toptab"].x = lerp(22 - 504, 22, 0.5, timer_start, System.uptime)
|
||||
Graphics.update
|
||||
Input.update
|
||||
pbUpdate
|
||||
|
||||
Reference in New Issue
Block a user