Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Aller Anfang ist schwer... ERLEDIGT

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
7Basic



Anmeldungsdatum: 24.10.2013
Beiträge: 9

BeitragVerfasst am: 24.10.2013, 01:41    Titel: Aller Anfang ist schwer... ERLEDIGT Antworten mit Zitat

hi alle zusammen, ich beschäftige mich seit einigen tagen mit der sprache fb.
nun hoffe ich das dieser code den ich präsentiere so auch korreckt ist.

das ding macht nichts ausser die FPS anzuzeigen, und diese grafisch auszugeben.

ich versuche auch zu erklären warum ich es so gemacht habe happy

Code:
ScreenRes 1920, 1080, 32,,&h01
Dim Shared zeit As Double
Dim Shared Show As Integer
Dim Shared MYFPS As Integer
Dim OldFPS As Integer
DECLARE SUB FPS ()

zeit = Timer
Do
   FPS()
     If OldFPS<> MyFPS Then
        ScreenLock
           Cls
           Draw STRING (10, 20), "Hallo Welt " & MYFPS, RGB(255,0,0)
        ScreenUnLock
     EndIf

     Sleep 1
LOOP UNTIL LEN(INKEY)

SUB FPS ()
   show=show+1
   If Timer - zeit>1.0 Then
      zeit = Timer
       MYFPS=show
       show=0
   EndIf
END Sub


ein dub habe ich gewählt da ich eine funktion nicht nutzen konnte , ich weiss nicht warum aber Function FPS () as integer wollte er so nich fressen. sonst wäre ich hingegangen und hätte es returnt.

dim shared muss ich ja nun nicht erklären grinsen das ist natürlich beabsichtigt um es im sub weiter auszuwerten.

If OldFPS<> MyFPS Then
habe ich deswegen gewählt damit erst bei einer veränderung der neue wert gerandert wird.

das sind so denke ich die wichtigsten dinge,

was mir wichtig wäre wenn daran etwas zu mekkern ist bitte macht es. wenn dazu fragen sind was ich nicht glaube dann fragt.
und wenn es so gut ist, bitte sagt es. ich möchte natürlich preformence schonend sein. und somit auch richtig in fb einsteigen und lernen.

Danke im vorraus


Zuletzt bearbeitet von 7Basic am 24.10.2013, 05:34, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 24.10.2013, 02:38    Titel: Antworten mit Zitat

Finde daran eigentlich nicht wirklich was zu meckern,
geht aber auch mit einer funktion und ohne shared variablen

Code:


Function getFPS() as Integer
    static FPS as Integer
    static tmr as Single
    Dim tmpFPS as Integer
   
    FPS += 1
   
    If ((Timer - tmr) > 1.0f) Then
        tmpFPS = FPS
        FPS = 0
        tmr = Timer
        return tmpFPS
    End If
   
    return 0
End Function



Dim newFPS as Integer
Dim oldFPS as Integer

screenres 640,480,32

Do
    newFPS = getFPS()
   
    If newFPS Then
        oldFPS = newFPS
       
        ScreenLock
           Cls
           Draw STRING (10, 20), "Hallo Welt " & oldFPS, RGB(255,0,0)
        ScreenUnLock
       
    End If
   
    sleep 1
Loop until multikey(&h01)

_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
7Basic



Anmeldungsdatum: 24.10.2013
Beiträge: 9

BeitragVerfasst am: 24.10.2013, 03:16    Titel: Antworten mit Zitat

jo ich habe dein example mal übernommen da ich es in einer funktion übersichtlicher finde

so nun habe ich das nächste übel

was ich machen möchte den aktuellen bildausschnit (komplettes bild)
in einem image legen und dann an einer anderen position einfach darstellen.

hört sich irgendwie leichter an als ich dachte

mein code
Code:
#Include Once "md/util/mdList.bi"

ScreenRes 1920, 1080, 32,,&h01
Dim Shared zeit As Double
Function getFPS() as Integer
    static FPS as Integer
    static tmr as Single
    Dim tmpFPS as Integer
   
    FPS += 1
   
    If ((Timer - tmr) > 1.0f) Then
        tmpFPS = FPS
        FPS = 0
        tmr = Timer
        return tmpFPS
    End If
   
    return 0
End Function


Dim newFPS as Integer
Dim oldFPS as Integer

Dim Taste As String

DIM bild AS ANY Ptr


Do
    newFPS = getFPS()
   
    If newFPS Then
        oldFPS = newFPS
       
        ScreenLock
           Cls
           Draw STRING (10, 20), "Hallo Welt " & oldFPS, RGB(255,0,0)
           
           taste = InKey
            If taste="" Then
            else
               if taste ="B" Then
                  ScreenLock
                     bild = IMAGECREATE(1920,1080)
                     Get (0,0)-Step (1920,1080),bild
                  ScreenUnLock
               EndIf
            EndIf
            
            If bild <>0 Then
               Put (0,100),bild,Trans
            EndIf
        ScreenUnLock
       
    End If
   
   
   
   
   
   
    sleep 1
Loop until multikey(&h01)


problem ist: er sollte den ausgegebenen text draw strng im bild hinterlegen, und diesen auch ausgebe via put an pos 0,100 das problem was ich habe ist, das er es nicht wirklich macht. der text wird nicht im bild hinterlegt (BUchstabe B drücken also gross) um es im image zu legen


EDIT: ERLEDIGT danke!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz