 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
7Basic
Anmeldungsdatum: 24.10.2013 Beiträge: 9
|
Verfasst am: 24.10.2013, 01:41 Titel: Aller Anfang ist schwer... ERLEDIGT |
|
|
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
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 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 |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 24.10.2013, 02:38 Titel: |
|
|
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 |
|
 |
7Basic
Anmeldungsdatum: 24.10.2013 Beiträge: 9
|
Verfasst am: 24.10.2013, 03:16 Titel: |
|
|
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 |
|
 |
|
|
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.
|
|