Skip to content

Commit

Permalink
Created ImageFadeIn() to save resources on iOS
Browse files Browse the repository at this point in the history
lvcabral committed Feb 6, 2024
1 parent b8935f1 commit 77aa995
Showing 5 changed files with 20 additions and 6 deletions.
2 changes: 1 addition & 1 deletion manifest
Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@ title=Prince of Persia
subtitle=Port for Roku by Marcelo Lv Cabral
major_version=0
minor_version=20
build_version=4071
build_version=4072
mm_icon_focus_hd=pkg:/images/icon_focus_hd.png
mm_icon_focus_sd=pkg:/images/icon_focus_hd.png
screensaver_private=1
3 changes: 2 additions & 1 deletion source/gameMenu.brs
Original file line number Diff line number Diff line change
@@ -13,6 +13,7 @@
' ********************************************************************************************************

function StartMenu() as integer
m.firstRun = (m.firstRun = invalid)
m.mainScreen.clear(0)
if IsHD()
m.menu = { w: 1024, h: 692, s: 1 }
@@ -28,7 +29,7 @@ function StartMenu() as integer
noTitle = ScaleToSize(CreateObject("roBitmap", "pkg:/images/menu_back.jpg"), m.menu.w, m.menu.h)
backImage = ScaleToSize(CreateObject("roBitmap", "pkg:/images/start_menu.jpg"), m.menu.w, m.menu.h)
end if
CrossFade(m.mainScreen, m.menu.x, m.menu.y, noTitle, backImage, 4)
if m.firstRun then CrossFade(m.mainScreen, m.menu.x, m.menu.y, noTitle, backImage, 4)
menuFont = m.fonts.reg.getFont("Prince of Persia Game Font", int(30 * m.menu.s), false, false)
menuMode = m.fonts.reg.getFont("Prince of Persia Game Font", int(28 * m.menu.s), false, false)
menuLeft = m.menu.x + Cint(368 * m.menu.s)
2 changes: 1 addition & 1 deletion source/gameMods.brs
Original file line number Diff line number Diff line change
@@ -101,7 +101,7 @@ function GetModIcon(modId as dynamic) as string
modCover = "tmp:/" + modId + ".png"
end if
if modImage <> "" and not m.files.Exists(modCover)
print "scaling to size: "; modImage, modCover
' print "scaling to size: "; modImage, modCover
bmp = ScaleToSize(CreateObject("roBitmap", modImage), 256, 160)
bmp.DrawLine(0, 0, 255, 0, m.colors.white)
bmp.DrawLine(255, 0, 255, 159, m.colors.white)
13 changes: 13 additions & 0 deletions source/gameUtil.brs
Original file line number Diff line number Diff line change
@@ -415,6 +415,19 @@ sub CrossFade(screen as object, x as integer, y as integer, objectfadeout as obj
end for
end sub

sub ImageFadeIn(screen, x as integer, y as integer, objectfadein as object, speed = 1 as integer)
screen.SetAlphaEnable(true)
width = objectfadein.getWidth()
height = objectfadein.getHeight()
for i = 0 to 255 step speed
hexcolor = &hFF - i
screen.Clear(0)
screen.DrawObject(x, y, objectfadein)
screen.DrawObject(x, y, GetPaintedBitmap(hexcolor, width, height, true))
screen.SwapBuffers()
end for
end sub

function GetScale(screen as object, width as integer, height as integer) as float
scaleX = screen.GetWidth() / width
scaleY = screen.GetHeight() / height
6 changes: 3 additions & 3 deletions source/sceneCredits.brs
Original file line number Diff line number Diff line change
@@ -57,7 +57,7 @@ Function PlayIntro(spriteMode = -1 as integer) as boolean
centerX = Cint((screen.GetWidth() - (320 * posScale)) / 2)
centerY = Cint((screen.GetHeight() - (200 * posScale)) / 2)
intro = ScaleBitmap(CreateObject("roBitmap", pngIntro), scale)
CrossFade(screen, centerX, centerY, GetPaintedBitmap(m.colors.black, 320 * posScale, 200 * posScale,true), intro, 3)
ImageFadeIn(screen, centerX, centerY, intro, 3)
PlaySong("main-theme")
msg = wait(2600, m.port)
for s = 1 to 5
@@ -112,7 +112,7 @@ Sub PlayEnding()
centerX = Cint((m.mainScreen.GetWidth()-(320*scale))/2)
centerY = Cint((m.mainScreen.GetHeight()-(200*scale))/2)
intro = ScaleBitmap(CreateObject("roBitmap", "pkg:/assets/titles/intro-screen"+suffix+".png"), introScale)
CrossFade(m.mainScreen, centerX, centerY, GetPaintedBitmap(0,320*scale, 200*scale,true), intro, 4)
ImageFadeIn(m.mainScreen, centerX, centerY, intro, 4)
wait(95000, m.port)
m.audioPlayer.stop()
End Sub
@@ -153,7 +153,7 @@ Function TextScreen(pngFile as string, color as integer, waitTime = 0 as integer
canvas.DrawRect(16 * scale, 16 * scale, 288 * scale, 156 * scale, color)
canvas.DrawObject(30 * scale, 25 * scale, bmp)
if fadeIn > 0
CrossFade(screen, centerX, centerY, GetPaintedBitmap(0, 320 * scale, 200 * scale, true), canvas, fadeIn)
ImageFadeIn(screen, centerX, centerY, canvas, fadeIn)
else
screen.DrawObject(centerX, centerY, canvas)
end if

0 comments on commit 77aa995

Please sign in to comment.