(11-09-2024, 10:50 PM)Dav Wrote: Thanks, guys. I plan to use a better font. Maybe with rotozoom can make a skewed text scroll up image like a Star Wars look.
- Dav
We had worked on Star Wars crawl at old forum this code works in versions 3.2 to 3.4 but starting 3.6 it dies!
Code: (Select All)
' Star Wars Episode V: The Empire Strikes Back opening crawl?
' http://www.galaxyfaraway.com/gfa/2006/02/what-is-the-text-of-the-star-wars-episode-v-the-empire-strikes-back-opening-crawl/
Screen _NewImage(800, 700, 32)
_ScreenMove 300, 20
swt& = _NewImage(320, 512, 32)
_Dest swt&
Color _RGB32(0, 180, 0)
nl$ = Chr$(10)
sw$ = "It is a dark time for the Rebellion." + nl$
sw$ = sw$ + "Although the Death Star has been" + nl$
sw$ = sw$ + "destroyed, Imperial troops have driven" + nl$
sw$ = sw$ + "the Rebel forces from their hidden base" + nl$
sw$ = sw$ + "and pursued them across the galaxy." + nl$
sw$ = sw$ + nl$ + nl$
sw$ = sw$ + "Evading the dreaded Imperial Starfleet," + nl$
sw$ = sw$ + "a group of freedom fighters led by Luke" + nl$
sw$ = sw$ + "Skywalker has established a new secret" + nl$
sw$ = sw$ + "base on the remote ice world of Hoth." + nl$
sw$ = sw$ + nl$ + nl$
sw$ = sw$ + "The evil lord Darth Vader, obsessed" + nl$
sw$ = sw$ + "with finding young Skywalker, has" + nl$
sw$ = sw$ + "dispatched thousands of remote probes" + nl$
sw$ = sw$ + "into the far reaches of space.... " + nl$
Locate 20, 1
Print sw$
_Dest 0
yy = _Height / 3
For i = 11 To 60 Step .5
Cls
yy = yy - 60 / i
cText _Width / 2, yy + yy, yy, _RGB32(230, 220, 50), "Star Wars"
cText _Width / 2, yy + yy, yy * .96, _RGB32(0, 0, 0), "Star Wars"
_Display
_Limit 15
Next
cx = _Width / 2
power = 1024 'TO 1 STEP -1
x = (_Height - 20) ^ (1 / power)
dy = 1 '256 pixel height / 50 blocks across
For y = -840 To -270
Cls
For i = 0 To power - 1
'_PUTIMAGE [STEP] [(dx1, dy1)-[STEP][(dx2, dy2)]][, sourceHandle&][, destHandle&][, ][STEP][(sx1, sy1)[-STEP][(sx2, sy2)]]
_PutImage (cx - .75 * x ^ i, 10 + x ^ i)-(cx + .75 * x ^ i, 10 + x ^ (i + 1)), swt&, 0, (0, y + dy * i)-(319, y + dy * (i + 1))
'LINE (cx - .75 * x ^ i, 10 + x ^ i)-(cx + .75 * x ^ i, 10 + x ^ (i + 1)), , B
Next
Print y
_Display
_Limit 15
Next
yy = 80
For i = 60 To 0 Step -.5
Cls
yy = yy + 60 / i
cText _Width / 2, yy + yy, yy, _RGB32(230, 220, 50), "Star Wars"
cText _Width / 2, yy + yy, yy * .96, _RGB32(0, 0, 0), "Star Wars"
_Display
_Limit 75
Next
Sub cText (x, y, textHeight, K As _Unsigned Long, txt$)
fg = _DefaultColor
'screen snapshot
cur& = _Dest
I& = _NewImage(8 * Len(txt$), 16, 32)
_Dest I&
Color K, _RGB32(0, 0, 0, 0)
_PrintString (0, 0), txt$
mult = textHeight / 16
xlen = Len(txt$) * 8 * mult
_PutImage (x - .5 * xlen, y - .5 * textHeight)-Step(xlen, textHeight), I&, cur&
Color fg
_FreeImage I&
End Sub
Ashish had a nice one too (Star Wars crawl) and it does still works!
Code: (Select All)
'###########################
'# StarWars Opening Crawl #
'# By Ashish #
'###########################
_Title "STARSWARS Opening crawl"
Screen _NewImage(800, 600, 32)
Dim Shared glAllow, text&, text2&, lines$(26)
Dim Shared starWars&
text& = _NewImage(280, (UBound(lines$) + 1) * _FontHeight, 32)
text2& = _CopyImage(text&)
starWars& = _NewImage(65, 17, 32)
_Dest starWars&
Color _RGB32(255, 255, 255)
_PrintString (0, 0), "STARWARS"
_Dest 0
For i = 0 To UBound(lines$)
Read a$
lines$(i) = a$
Next
Color _RGB(0, 0, 255)
centerPrint "A long time ago in galaxy far,", _Width, 280
centerPrint "far away...", _Width, 308
_Delay 2
For i = 0 To 255 Step 5
Line (0, 0)-(_Width, _Height), _RGB32(0, 0, 0, i), BF
_Display
_Delay 0.01
Next
_PutImage (_Width / 2 - _Width(starWars&) * 3, _Height / 2 - _Height(starWars&) * 3)-Step(_Width(starWars&) * 6, _Height(starWars&) * 6), starWars&
_Display
_Delay 2
For i = 0 To 255 Step 5
Line (0, 0)-(_Width, _Height), _RGB32(0, 0, 0, i), BF
_Display
_Delay 0.01
Next
_Dest text2&
Color _RGB(255, 220, 0), _RGB(0, 0, 0)
For i = 0 To UBound(lines$)
If i = UBound(lines$) Then Color _RGB(255, 0, 255)
centerPrint lines$(i), _Width, y + i * _FontHeight
Next
_Dest 0
glAllow = -1
Color _RGB(255, 220, 0), _RGBA(0, 0, 0, 0)
y = _Height(text&) + 10
Do
_Dest text&
_PutImage (0, y), text2&
y = y - 1
_Limit 30
Loop Until y < -_Height(text2&) - 10
_Dest 0
Data "It is a period of civil war"
Data "Rebel spaceships, striking"
Data "from a hidden base, have "
Data "won their first victory"
Data "against the evil Galactic"
Data "Empire."
Data ""
Data ""
Data "During the battle, rebel"
Data "spies managed to steel"
Data "secret plans to the Empire's"
Data "ultimate weapon, the DEATH"
Data "STAR, an armored space station"
Data "with enough to destroy an entire"
Data "planet."
Data ""
Data ""
Data "Pursued by the Empire's sinister"
Data "agents, Princess Leia races"
Data "home abroad her starship,"
Data "custodian of the stolen plans"
Data "that cansave her people and"
Data "restore the freedom to the galaxy"
Data ""
Data ""
Data ""
Data "QB64 Rocks!"
Sub centerPrint (t$, w, y)
_PrintString ((w / 2) - (Len(t$) * _FontWidth) / 2, y), t$
End Sub
Sub _GL ()
Static glInit, tex&, texMem As _MEM ', clock!
If Not glAllow Then Exit Sub
If glInit = 0 Then
glInit = -1
_glViewport 0, 0, _Width, _Height
texMem = _MemImage(text&)
_glGenTextures 1, _Offset(tex&)
End If
If glInit = -1 Then clock! = clock! + 0.01
_glEnable _GL_TEXTURE_2D
_glEnable _GL_DEPTH_TEST
_glMatrixMode _GL_PROJECTION
_glLoadIdentity
_gluPerspective 60.0, _Width / _Height, 0.01, 10
_glMatrixMode _GL_MODELVIEW
_glLoadIdentity
_glBindTexture _GL_TEXTURE_2D, tex&
_glTexImage2D _GL_TEXTURE_2D, 0, _GL_RGB, _Width(texMem.IMAGE), _Height(texMem.IMAGE), 0, _GL_BGRA_EXT, _GL_UNSIGNED_BYTE, texMem.OFFSET
_glTexParameteri _GL_TEXTURE_2D, _GL_TEXTURE_MAG_FILTER, _GL_LINEAR
_glTexParameteri _GL_TEXTURE_2D, _GL_TEXTURE_MIN_FILTER, _GL_LINEAR
_glBegin _GL_QUADS
_glTexCoord2f 0, 1: _glVertex3f -0.8, -1, -0.5 'bottom left #
_glTexCoord2f 1, 1: _glVertex3f 0.8, -1, -0.5 'bottom right # Coordinates sign are same as in Cartesian Plane (3D)
_glTexCoord2f 1, 0: _glVertex3f 0.8, 3, -7 'upper right #
_glTexCoord2f 0, 0: _glVertex3f -0.8, 3, -7 ' upper left #
_glEnd
_glFlush
End Sub
It's _gl stuff.
b = b + ...