Välkkymisellähän ei ole framelimitin kanssa mitään tekemistä, fullscreenissä ollessa Drawscreen OFF pistää näytön välkkymään (mahdollisesti koska directx-device tekee edelleen doublebufferointia vaikka vain toiseen bufferiin piirretään?) joten kuvaan piirtäminen pitää toteuttaa, no, piirtämällä kuvaan eikä vain päivittämättä jäävälle näytölle. Koodia seuraa.
Code: Select all
SCREEN 800,600,0,0
toiminto#=0
tila#=0
kuva = MakeImage(800, 600)
Repeat
Text 0,0,"Näppäimet: K=kynä V=viiva L=laatikko E=ellipsi T=vaihda tilaa"
If KeyHit(37) Then toiminto#=0 'yksiriviset if-rakenteet voi kirjoittaa yhdelle riville. Jos ne kirjoittaa useammalle riville, loppuun pitäisi laittaa EndIf.
If KeyHit(47) Then toiminto#=1
If KeyHit(38) Then toiminto#=2
If KeyHit(18) Then toiminto#=3
If KeyHit(20) And tila#=0 Then
tila#=1
Else
If tila#=1 Then tila#=0
EndIf
DrawToImage kuva
If MouseDown(1) And toiminto#=0 Then Dot MouseX(),MouseY() 'kun piirretään ruudulle eikä pelimaailmaan, käytetään yleensä funktioita MouseX() ja MouseY(), koska ne toimivat halutulla tavalla
If MouseHit(1) And toiminto#=1 Then 'kun hiiren nappula painetaan alas, otetaan koordinaatit talteen
wanhaX = MouseX()
wanhaY = MouseY()
EndIf
If MouseUp (1) And toiminto# =1 Then Line wanhaX, wanhaY, MouseX(),MouseY() '...jotta sitten niitä voi hyödyntää kun hiiren painike vapautetaan
If MouseDown(1) And toiminto#=2 Then Box MouseX(),MouseY(), 5, 5, Int(tila)
If MouseDown(1) And toiminto#=3 Then Ellipse MouseX(),MouseY(),5, 5, Int(tila)
DrawToScreen
DrawImage kuva, 0, 0
Box 64,16,8,8,Int(tila) 'en näe tämän hyödyllisyyttä, mutta jätin sen siihen silti
DrawScreen'jos CLS on päällä, viivat yms. vain välähtävät ruudulla ja häviävät sitten näkyvistä
Until EscapeKey()