Begrenzung?

Previous topic - Next topic

WPShadow

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:

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
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Kitty Hello

was passiert, wenn Energie > 1000? Antwort: Energie_X wird nicht gesetzt.
Lösung:
Code (glbasic) Select
Energie_X = INTEGER(Energie);)