GLBasic forum

Main forum => Tutorials => Topic started by: Schranz0r on 2007-Apr-06

Title: Die neuen Types sind da, und siehe da, sie sind mächtig !
Post by: Schranz0r on 2007-Apr-06
Code (glbasic) Select
// --------------------------------- //
// Project: Ballergame demo(new Types)
// Start: Thursday, April 05, 2007
// IDE Version: 4.148

SYSTEMPOINTER TRUE

//--------Type erstellen
TYPE shot
x
y
ENDTYPE
//----------------------

//---Neuen Schuss für erstellen für die spätere nutzung
LOCAL newshot AS shot

//---Das "Schuss-Array" erstellen, wo die schüsse gespeichert werden
LOCAL shots[] AS shot

WHILE TRUE

LOCAL mx,my,b1,b2

MOUSESTATE mx,my,b1,b2

//wenn Maustaste links gedrückt und Timer kleiner Gettimerall ist
IF b1 = 1  AND timer < GETTIMERALL()            
newshot.x = mx   //--|
newshot.y = my     //-----Schüsse

DIMPUSH shots[], newshot // Werte der Positionen übergeben
timer = GETTIMERALL()+300 //Timer höher setzen und verzögerung einfügen!
ENDIF

FOREACH Check IN shots[] // eine Variable durchdüsen lassen (aktualisieren)
DEC Check.y,2                       //schuss um 2 nach oben versetzen
IF Check.y < 0 THEN DELETE Check  //wenn schuss y < 0 dann löschen  

PRINT "|",Check.x,Check.y      //schuss zeichen  ;)
NEXT

//Gibt die anzahl der Einträge in shots[] wieder
PRINT "Shots: "+BOUNDS(shots[], 0), 0,0

FPS(TRUE) //Show Timer + FPS

SHOWSCREEN
WEND
END




FUNCTION FPS: ShowFps
    TimeK=GETTIMER(); Time=Time+TimeK; frames=frames+1;
    IF Time>999; FR=frames; frames=0; Time=TimeK-1000; Seconds=Seconds+1;
        IF Seconds>59; Minutes=Minutes+1; Seconds=0; ENDIF;
        IF Minutes>59; Hours=Hours+1; Minutes=0; ENDIF;
        IF Hours>23; Days=Days+1; Hours=0; ENDIF;
    ENDIF;
    IF ShowFps=TRUE
        Line=20
        PRINT "Time: "+Days+ ":" + Hours + ":" + Minutes + ":" + Seconds,10,Line*1
        PRINT "FPS="+FR,10,Line*2
    ENDIF
                     RETURN FR
ENDFUNCTION
Testen und staunen!