Gestione del tempo mediante le funzioni esterne del API di Libcsfml

Da Gambas-it.org - Wikipedia.

La libreria SFML (Simple and Fast Multimedia Library) fornisce una semplice interfaccia multipiattaforma per facilitare lo sviluppo di giochi e applicazioni multimediali in genere. Essa si compone di cinque moduli: sistema, finestre, grafica, audio e di rete. Qui tratteremo ovviamente del modulo attinente al sistema, ed in particolare delle funzioni descritte nel file header Clock.h

Per poter fruire delle risorse e delle funzioni esterne della libreria libcsfml, bisognerà richiamare nell'applicativo Gambas la libreria: "libcsfml-system.so.1.6 ".

Nell'esempio che segue mostreremo un possibile codice per realizzare un semplice cronografo:

Private tempus As Pointer
Private v As Boolean


Library "libcsfml-system:1.6"

' sfClock* sfClock_Create()
' Create a new clock and start it. Return A new sfClock object.
Private Extern sfClock_Create() as Pointer

' float sfClock_GetTime(sfClock* Clock)
' Get the time elapsed for a clock.
Private Extern sfClock_GetTime(clock As Pointer) as Single

' void sfClock_Reset(sfClock* Clock)
' Restart a clock.
Private Extern sfClock_Reset(clock As Pointer)

' void sfClock_Destroy(sfClock* Clock)
' Destroy an existing clock.
Private Extern sfClock_Destroy(clock As Pointer)


Public Sub ToggleButton1_Click()
 
  If ToggleButton1.Value Then
    tempus = sfClock_Create()
    v = True
    While v
      Label1.Text = Format(Date(0, 0, 0, 0, 0, 0, Fix(sfClock_GetTime(tempus) * 1000)), "nn:ss.uu")
      Wait 0.001
    Wend
    Label1.Text = Null
  Else
    v = False
    sfClock_Destroy(tempus)
  Endif
 
End


Riferimenti

[1] http://www.sfml-dev.org/index.php

[2] http://sourcecodebrowser.com/libcsfml/1.6/index.html