Startbildschirm

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Die4Me

Betreff: Startbildschirm

BeitragSa, Jun 18, 2005 11:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey,
ich bin dabei, einen Startbildschirm zu erstellen!
Der is schon fertig...
Ich hab nur noch ein Prob!
Die CPU-Auslastung beträgt ca 70-90% wenn der läuft.
Der Quellcode sieht so aus:
BlitzBasic: [AUSKLAPPEN]
AppTitle \"Name des Spiels\"
width = 640
Graphics width , 480, 16, 2
SetBuffer BackBuffer()
bg = LoadImage (\"gfx/main.png\")
b1 = LoadImage (\"gfx/b1.png\")
b2 = LoadImage (\"gfx/b2.png\")
hl = LoadFont (\"gfx/miltown.ttf\", 40)
link = LoadFont (\"gfx/miltown.ttf\", 18)
Dim ger$ (7)
ger$ (1) = \"NAME°DES°SPIELS\"
ger$ (2) = \"SPIELEN\"
ger$ (3) = \"INSTALLIEREN\"
ger$ (4) = \"DIRECT°X\"
ger$ (5) = \"HILFE\"
ger$ (6) = \"DEINSTALLIEREN\"
ger$ (7) = \"VERLASSEN\"
Repeat
Cls
TileBlock (bg)
For n = 150 To 350 Step 40
widthimage = (width - ImageWidth (b1)) / 2
MaskImage b1, 255, 0, 255
MaskImage b2, 255, 0, 255
If ImageRectOverlap(b1, widthimage, n, MouseX(), MouseY(), 1, 1) Then
DrawImage b2, widthimage, n
Else
DrawImage b1, widthimage, n
EndIf
Next
SetFont (hl)
Color 60, 30, 0
Text (width - StringWidth (ger (1))) / 2, 50, ger (1)
SetFont (link)
Text (width - StringWidth (ger$ (2))) / 2, 155, ger$ (2)
Text (width - StringWidth (ger$ (3))) / 2, 195, ger$ (3)
Text (width - StringWidth (ger$ (4))) / 2, 235, ger$ (4)
Text (width - StringWidth (ger$ (5))) / 2, 275, ger$ (5)
Text (width - StringWidth (ger$ (6))) / 2, 315, ger$ (6)
Text (width - StringWidth (ger$ (7))) / 2, 355, ger$ (7)
Color 255, 0, 255
If (MouseDown(1) And ImageRectOverlap(b1, widthimage, 155, MouseX(), MouseY(), 1, 1)) Then
Text MouseX(), MouseY(), \"SPIELEN\"
ElseIf (MouseDown(1) And ImageRectOverlap(b1, widthimage, 195, MouseX(), MouseY(), 1, 1)) Then
Text MouseX(), MouseY(), \"INSTALLIEREN\"
ElseIf (MouseDown(1) And ImageRectOverlap(b1, widthimage, 235, MouseX(), MouseY(), 1, 1)) Then
ExecFile \"DirectX9.0c/dxsetup.exe\"
ElseIf (MouseDown(1) And ImageRectOverlap(b1, widthimage, 275, MouseX(), MouseY(), 1, 1)) Then
ExecFile \"readme.txt\"
ElseIf (MouseDown(1) And ImageRectOverlap(b1, widthimage, 315, MouseX(), MouseY(), 1, 1)) Then
Text MouseX(), MouseY(), \"DEINSTALLIEREN\"
ElseIf (MouseDown(1) And ImageRectOverlap(b1, widthimage, 355, MouseX(), MouseY(), 1, 1)) Then
End
EndIf
Flip
Forever

Naja...
Liegen tut es an der Repeat-Forever-Schleife.
Das weiß ich auch schon...
Aber wie ich es beheben kann, das weiß ich nich!
Thx schonmal für eure Lösungen! ^^
CU
Die4Me

Jack

BeitragSa, Jun 18, 2005 11:41
Antworten mit Zitat
Benutzer-Profile anzeigen
du hast widthimage statt imagewidth geschrieben Exclamation
und nur als tipp nebenbei: schreib statt imagerectoverlap lieber rectsoverlap. bei einer mausüberlappung reicht dieser befehl völlig aus. denn er geht sehr, sehr schnell. er ist der schnellste unter den kollisionsbefehlen Exclamation

Spikespine

BeitragSa, Jun 18, 2005 11:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Die CPU-Auslastung ist bei manchen PCs immer so hoch, wenn gerade ein BlitzBasic-Programm läuft. Das liegt nicht unbedingt am Code.

Spike
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax
 

Apocalyptic

BeitragSa, Jun 18, 2005 11:56
Antworten mit Zitat
Benutzer-Profile anzeigen
@ Dennerlein: Erm... sieh dir den Code nochmal genau an Rolling Eyes

@ Die4Me: Die Forensuche ist manchmal ganz nützlich: https://www.blitzforum.de/view...auslastung Wink

Kleiner Tipp: MaskImage muss nicht in die Schleife. Die ganzen Breiten-Berechnungen kannst du vor deiner Schleife in eine Variable speichern, das bringt zusätzliche Geschwindigkeit, was sich in diesem Fall jedoch nicht lohnt.
Suum cuique

[ www.ffs-net.de.vu ] [ Raycaster ]

Jack

BeitragSa, Jun 18, 2005 12:07
Antworten mit Zitat
Benutzer-Profile anzeigen
stimmt apokalyptic. hab ich wohl übersehen Laughing

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group