Hi!
Das Problem habe ich bei der "Begrenzung" der Energieanzeige! Ich habe den Wert mit Absicht höher angesetzt, damit der "Energietimer" (im Programm im Eck unten Rechts in gelb) schneller hochlädt. Auf jeden Fall hält er bei 999 an (PRINT), obwohl sich der Balken weiter "auflädt". Muß ich da etwas verändern oder habe ich irgendwo einen Fehler eingebaut? =/
GLG
W.
Hier anbei der Code:
Das Problem habe ich bei der "Begrenzung" der Energieanzeige! Ich habe den Wert mit Absicht höher angesetzt, damit der "Energietimer" (im Programm im Eck unten Rechts in gelb) schneller hochlädt. Auf jeden Fall hält er bei 999 an (PRINT), obwohl sich der Balken weiter "auflädt". Muß ich da etwas verändern oder habe ich irgendwo einen Fehler eingebaut? =/
GLG
W.
Hier anbei der Code:
Code (glbasic) Select
// --------------------------------- //
// Project:
// Start: Tuesday, September 12, 2006
// IDE Version: 3.251
GLOBAL Space_Down
LOADFONT "font1.bmp", 1
Lebensenergie = 830
Schild = 250
Generator = 9729
Space_Down=FALSE
LIMITFPS -1 //Maximal
Old_Timer=GETTIMERALL()
Ship1_Speed_X = 100 // Schiffgeschwindigkeit1 = 100 Pixel PRO SEKUNDE
Ship1_Color=RGB(255,0,0) // Schiff1 = Rot
Ship1_X=-30 // StarPosition Schiff 1 genau am Rand
Ship2_Speed_X = 100 // Schiffgeschwindigkeit2 = 100 Pixel PRO SEKUNDE
Ship2_Color=RGB(0,0,255) // Schiff2 = Blau
Ship2_X=-30 // StarPosition Schiff 2 ganau am Rand
GETSCREENSIZE Width,Height // Bildschirmgröße abfragen
//Spielschleife
WHILE TRUE
//GAMETIMER
//+++++++++++++++++++++++++++++++++++
GT=(GETTIMERALL()-Old_Timer)/1000
Old_Timer=GETTIMERALL()
//+++++++++++++++++++++++++++++++++++
//Raumschiff bewegen
Ship1_X = Ship1_X + Ship1_Speed_X * GT
//Nach der Bildschirmhälfte plötzlich langsamer
IF Ship1_X > Width/2 THEN Ship1_Speed_X = 250
FILLRECT Ship1_X,100,Ship1_X+30,130,Ship1_Color
//Raumschiff bewegen
Ship2_X = Ship2_X + Ship2_Speed_X * GT
FILLRECT Ship2_X,200,Ship2_X+30,230,Ship2_Color
//Hier ist noch ein Timer der die Frames und die Sekunde mißt
//****************************************************
Frames=Frames+1
IF TimeStart + 1000 FPS=Frames
Frames=0
//Solange Blaues Schiff nicht Rechts angekommen ist Zeit messen
IF Ship2_X < Width
Time=Time+1
ENDIF
TimeStart=GETTIMERALL()
ENDIF
Energietimer()
Menue_anzeige()
Menue_steuerung()
//****************************************************
//****************************************************
PRINT "FPS " + FPS,20,20
PRINT "Time " + Time,20,50
//****************************************************
SHOWSCREEN
WEND
FUNCTION Energietimer:
//New Timer
IF NewTimer+10 Time2=Time2+0.01
Energie = Energie + ((Time2/Time2) * 5.5)
IF Energie > Generator THEN Energie = Generator
NewTimer=GETTIMERALL()
ENDIF
ENDFUNCTION
FUNCTION Menue_anzeige:
X_MAKE2D
//--
FILLRECT 823, 668, 1021, 766, RGB(255, 255, 255)
FILLRECT 824, 669, 1020, 765, RGB( 0, 0, 255)
FILLRECT 825, 670, 1019, 764, RGB(128, 128, 255)
//--
FILLRECT 835, 670 + 10, 835 + 174, 670 + 20, RGB(128, 0, 0)
FILLRECT 835, 670 + 43, 835 + 174, 670 + 53, RGB( 0, 0, 128)
FILLRECT 835, 766 - 10, 835 + 174, 766 - 20, RGB(128, 128, 0)
// Lebensenergie
FILLRECT 835, 670 + 10, 835 + 150, 670 + 20, RGB(255, 0, 0)
// Schilde
FILLRECT 835, 670 + 43, 835 + 87, 670 + 53, RGB( 0, 0, 255)
// Balkenberechnung
Energiestand = (Energie * 174) / Generator
// Energie - Anzeige
FILLRECT 835, 766 - 10, 835 + Energiestand, 766 - 20, RGB(255, 255, 0)
PRINT Lebensenergie, 840, 680
PRINT Schild, 840, 713
IF Energie < 10 THEN Energie_X = MID$(Energie, 0, 1)
IF Energie < 100 THEN Energie_X = MID$(Energie, 0, 2)
IF Energie < 1000 THEN Energie_X = MID$(Energie, 0, 3)
PRINT Energie_X + "/" + Generator, 840, 746
//Angriffsmenü
FILLRECT 1, 668, 200, 766, RGB(255, 255, 255)
FILLRECT 2, 669, 199, 765, RGB( 0, 0, 255)
FILLRECT 3, 670, 198, 764, RGB(128, 128, 255)
PRINT "Angriff", 20, 680
PRINT "Angriff", 20, 700
PRINT "Angriff", 20, 720
ENDFUNCTION
FUNCTION Menue_steuerung:
IF KEY(28) THEN END
//--
IF KEY(208)=TRUE AND Space_Down_208=FALSE
x = x + 10
Space_Down_208=TRUE
ENDIF
IF KEY(208)=FALSE THEN Space_Down_208=FALSE
IF KEY(200)=TRUE AND Space_Down_200=FALSE
x = x - 10
Space_Down_200=TRUE
ENDIF
IF KEY(200)=FALSE THEN Space_Down_200=FALSE
PRINT x, 100, 100
FILLRECT 100 + x, 100, 200 + x, 200, RGB (255, 255, 255)
ENDFUNCTION