Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: QB64: Ajastin

terrist [10.08.2020 16:50:25]

#

Tein simppelin ajastin-ohjelman omiin tarkoituksiini, mutta ehkä tällä on jotain käyttöä muillekin. Kokeilin eri resoluutioilla(HD/FullHD/4K) ja vaikuttaisi skaalautuvan koko ruudulle hyvin.

' Ajastin v1.1 by Tertsi

desktop& = _SCREENIMAGE: MaxX& = _WIDTH(desktop&): MaxY& = _HEIGHT(desktop&)
_FREEIMAGE desktop&: SCREEN _NEWIMAGE(MaxX&, MaxY&, 256): _FULLSCREEN: _MOUSEHIDE
fontfile$ = ENVIRON$("SYSTEMROOT") + "\Fonts\NOTOMONO-REGULAR.TTF"
FOR z = 50 TO 800 'suurennetaan fonttia kunnes leveys on reunasta reunaan
    f& = _LOADFONT(fontfile$, z, "monospace"): _FONT f&
    IF _PRINTWIDTH("00:00:00") >= MaxX& THEN EXIT FOR
NEXT z
COLOR _RGB(255, 255, 255), _RGB(0, 0, 0)
a& = _LOADFONT(fontfile$, z / 4, "monospace")

Alku:
paussi$ = "ON"
CLS
_FONT a&: _PRINTSTRING (0, MaxY& - z / 4), "space=start"
_PRINTSTRING (MaxX& - _PRINTWIDTH("esc=quit"), MaxY& - z / 4), "esc=quit"
tunnit = 0: minuutit = 0: sekunnit = 0
GOSUB Ajastin
Lue$ = INPUT$(1): IF Lue$ = CHR$(27) THEN GOTO Loppu
_FONT a&: _PRINTSTRING (0, MaxY& - z / 4), "space=pause"
_PRINTSTRING (MaxX& - _PRINTWIDTH("enter=reset"), MaxY& - z / 4), "enter=reset"
_DISPLAY
paussi$ = "OFF"
TIMER ON
ON TIMER(1) GOSUB Ajastin
DO
    n$ = INKEY$
    IF n$ = CHR$(27) THEN EXIT DO
    IF n$ = CHR$(13) THEN GOTO Alku
    IF n$ = CHR$(32) THEN
        LINE (0, MaxY& - z / 4)-(MaxX& / 2, MaxY&), _RGB(0, 0, 0), BF
        IF paussi$ = "OFF" THEN
            _FONT a&: _PRINTSTRING (0, MaxY& - z / 4), "space=continue"
            paussi$ = "ON": TIMER OFF
        ELSE
            _FONT a&: _PRINTSTRING (0, MaxY& - z / 4), "space=pause"
            paussi$ = "OFF": TIMER ON
        END IF
        _DISPLAY
    END IF
LOOP

Loppu:
_FONT 16
_FREEFONT f&
_FREEFONT a&
_MOUSESHOW
SYSTEM

Ajastin:
IF paussi$ = "OFF" THEN sekunnit = sekunnit + 1
IF sekunnit = 60 THEN minuutit = minuutit + 1: sekunnit = 0
IF minuutit = 60 THEN tunnit = tunnit + 1: minuutit = 0
s$ = STR$(sekunnit): m$ = STR$(minuutit): t$ = STR$(tunnit)
IF sekunnit < 10 THEN s$ = "0" + LTRIM$(s$) ELSE s$ = LTRIM$(s$)
IF minuutit < 10 THEN m$ = "0" + LTRIM$(m$) ELSE m$ = LTRIM$(m$)
IF tunnit < 10 THEN t$ = "0" + LTRIM$(t$) ELSE t$ = LTRIM$(s$)
rivi$ = t$ + ":" + m$ + ":" + s$
_FONT f&: _PRINTSTRING (0, 0), rivi$
_DISPLAY
RETURN

terrist [10.08.2020 19:45:14]

#

Viilattu koodista turhuuksia pois.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta