215 lines
5.3 KiB
Text
215 lines
5.3 KiB
Text
' Gambas module file
|
|
|
|
'Public Screen As New Window As "Screen"
|
|
Public ciel As Image
|
|
Public montagnes As Image
|
|
Public barriere As Image
|
|
Public sol1 As Image
|
|
Public sol2 As Image
|
|
Public sol3 As Image
|
|
Public nuage1 As Image
|
|
Public nuage2 As Image
|
|
Public nuage3 As Image
|
|
Public nuage4 As Image
|
|
Public arbre As Image
|
|
Public fireworks As Image
|
|
Public scrolltext As Image
|
|
|
|
Public scroll As Integer
|
|
Public scrollb As Integer
|
|
Public scroll1 As Integer
|
|
Public scroll2 As Integer
|
|
Public scroll3 As Integer
|
|
Public scroll4 As Integer
|
|
Public scroll5 As Integer
|
|
Public scroll5b As Integer
|
|
Public scroll6 As Integer
|
|
Public speed As Integer
|
|
|
|
Private $hWindow As Window
|
|
Private $nFrame As Integer
|
|
|
|
Public Sub Main()
|
|
|
|
$hWindow = New Window As "Window"
|
|
|
|
With $hWindow
|
|
.Resize(640, 480)
|
|
.Framerate = 100
|
|
.Resizable = False
|
|
.Show()
|
|
End With
|
|
|
|
Music.Load("b-title.mod")
|
|
|
|
ciel = image.Load("bgd1_ciel.png")
|
|
nuage1 = image.Load("sprite_nuages1.png")
|
|
montagnes = image.Load("bgd2_montagnes.png")
|
|
sol1 = image.Load("bgd3_sol1.png")
|
|
sol2 = image.Load("bgd4_sol2.png")
|
|
sol3 = image.Load("bgd5_sol3.png")
|
|
nuage1 = image.Load("sprite_nuages1.png")
|
|
nuage2 = image.Load("sprite_nuages2.png")
|
|
nuage3 = image.Load("sprite_nuages3.png")
|
|
nuage4 = image.Load("sprite_nuages4.png")
|
|
barriere = image.Load("sprite_barriere.png")
|
|
arbre = image.Load("sprite_arbre.png")
|
|
fireworks = image.Load("fireworks.png")
|
|
scrolltext = image.Load("scrolltext.png")
|
|
|
|
speed = 2
|
|
scroll = 0
|
|
scrollb = 0
|
|
scroll1 = 0
|
|
scroll2 = 0
|
|
scroll3 = 0
|
|
scroll4 = 0
|
|
scroll5 = Rnd(0, 640)
|
|
scroll5b = Rnd(0, 640)
|
|
scroll6 = 0
|
|
|
|
Music.Play(-1, 1)
|
|
|
|
End
|
|
|
|
Private Sub DrawText(sText As String, X As Integer, Y As Integer) As Integer
|
|
|
|
Dim I As Integer
|
|
Dim J As Integer
|
|
|
|
Draw.Background = Color.Black
|
|
For I = -1 To 1
|
|
For J = -1 To 1
|
|
Draw.Text(sText, X + I, Y + J)
|
|
Next
|
|
Next
|
|
Draw.Background = Color.White
|
|
Draw.Text(sText, X, Y)
|
|
|
|
Return Y + Draw.Font.TextHeight(" ") + 4
|
|
|
|
End
|
|
|
|
Public Sub Window_Draw()
|
|
|
|
'Dim hImage As Image
|
|
|
|
'$hWindow.Clear
|
|
|
|
'$hWindow.Clear
|
|
'Goto PRINT_TEXT
|
|
|
|
Dim Y As Integer
|
|
|
|
scroll = scroll + speed
|
|
Dec (scroll1)
|
|
scroll2 = scroll2 - 2
|
|
scroll3 = scroll3 - 3
|
|
scroll4 = scroll4 - 4
|
|
scroll5 = scroll5 - 5
|
|
scroll5b = scroll5b - 2
|
|
scroll6 = scroll6 - 5
|
|
|
|
If (scroll = 320) Then speed = -2
|
|
If (scroll = -960) Then speed = 2
|
|
scrollb = scroll
|
|
If (scrollb < -640) Then scrollb = -640
|
|
If (scrollb > 0) Then scrollb = 0
|
|
If (scroll1 = -640) Then scroll1 = 0
|
|
If (scroll2 = -640) Then scroll2 = 0
|
|
If (scroll3 < -640) Then scroll3 = scroll3 + 640
|
|
If (scroll4 < -640) Then scroll4 = scroll4 + 640
|
|
If (scroll5 < -640) Then scroll5 = scroll5 + 1280
|
|
If (scroll5b < -640) Then scroll5b = scroll5b + 1280
|
|
If (scroll6 < -640) Then scroll6 = scroll6 + 640
|
|
|
|
#If False
|
|
|
|
hImage = New Image($hWindow.Width, $hWindow.Height)
|
|
|
|
hImage.DrawImage(ciel, 0, 0)
|
|
hImage.DrawImage(montagnes, scroll1, 200)
|
|
hImage.DrawImage(montagnes, scroll1 + 640, 200)
|
|
hImage.DrawImage(sol1, scroll2, 420)
|
|
hImage.DrawImage(sol1, scroll2 + 640, 420)
|
|
hImage.DrawImage(sol2, scroll3, 430)
|
|
hImage.DrawImage(sol2, scroll3 + 640, 430)
|
|
hImage.DrawImage(sol3, scroll4, 450)
|
|
hImage.DrawImage(sol3, scroll4 + 640, 450)
|
|
|
|
hImage.PaintImage(nuage1, scroll6, 0)
|
|
hImage.PaintImage(nuage1, scroll6 + 640, 0)
|
|
hImage.PaintImage(nuage2, scroll4, 82)
|
|
hImage.PaintImage(nuage2, scroll4 + 640, 82)
|
|
hImage.PaintImage(nuage3, scroll3, 120)
|
|
hImage.PaintImage(nuage3, scroll3 + 640, 120)
|
|
hImage.PaintImage(nuage4, scroll2, 138)
|
|
hImage.PaintImage(nuage4, scroll2 + 640, 138)
|
|
hImage.PaintImage(barriere, scroll5, 440)
|
|
hImage.PaintImage(arbre, scroll5b, 140)
|
|
hImage.PaintImage(fireworks, scrollb, 0)
|
|
hImage.PaintImage(scrolltext, scrollb + 640, 0)
|
|
|
|
Draw.Image(hImage, 0, 0)
|
|
|
|
#Else
|
|
|
|
Draw.Image(ciel, 0, 0)
|
|
Draw.Image(montagnes, scroll1, 200)
|
|
Draw.Image(montagnes, scroll1 + 640, 200)
|
|
Draw.Image(sol1, scroll2, 420)
|
|
Draw.Image(sol1, scroll2 + 640, 420)
|
|
Draw.Image(sol2, scroll3, 430)
|
|
Draw.Image(sol2, scroll3 + 640, 430)
|
|
Draw.Image(sol3, scroll4, 450)
|
|
Draw.Image(sol3, scroll4 + 640, 450)
|
|
Draw.Image(nuage1, scroll6, 0)
|
|
Draw.Image(nuage1, scroll6 + 640, 0)
|
|
Draw.Image(nuage2, scroll4, 82)
|
|
Draw.Image(nuage2, scroll4 + 640, 82)
|
|
Draw.Image(nuage3, scroll3, 120)
|
|
Draw.Image(nuage3, scroll3 + 640, 120)
|
|
Draw.Image(nuage4, scroll2, 138)
|
|
Draw.Image(nuage4, scroll2 + 640, 138)
|
|
Draw.Image(barriere, scroll5, 440)
|
|
Draw.Image(arbre, scroll5b, 140)
|
|
Draw.Image(fireworks, scrollb, 0)
|
|
Draw.Image(scrolltext, scrollb + 640, 0)
|
|
|
|
#Endif
|
|
|
|
PRINT_TEXT:
|
|
|
|
Inc $nFrame
|
|
'If $nFrame = 1000 Then $hWindow.Close
|
|
|
|
'Print $hWindow.Framerate; " FPS\r";
|
|
|
|
Y = 10
|
|
Draw.Font.Size = Font.DefaultHeight * 2
|
|
Y = DrawText($hWindow.Framerate & " " & ("FPS"), 10, Y)
|
|
Draw.Font.Size = Font.DefaultHeight
|
|
Y = DrawText("[F1] " & ("Toggle fullscreen"), 10, Y)
|
|
Y = DrawText("[F5] " & ("Take screenshot to ~/BeastScroll.png"), 10, Y)
|
|
Y = DrawText("[ESC] " & ("Quit"), 10, Y)
|
|
|
|
End
|
|
|
|
Public Sub Window_Close()
|
|
|
|
Music.Stop()
|
|
|
|
End
|
|
|
|
Public Sub Window_KeyPress()
|
|
|
|
Select Case Key.Code
|
|
Case Key.F1
|
|
$hWindow.FullScreen = Not $hWindow.FullScreen
|
|
Case Key.Esc
|
|
$hWindow.Close
|
|
Case Key.F5
|
|
$hWindow.Screenshot().Save("~/BeastScroll.png")
|
|
End Select
|
|
|
|
End
|