Gå til innhold

Bytte bakgrundsfarge hvert millisekund


Anbefalte innlegg

Annonse

Liten vits i å vise en ny farge på skjermen hvert 0,001 sekund da skjermen bare viser mellom 50 og 120 bilder i sekundet (mest sansynlig vis vil jeg regne med 60). Finn ut hva frekvensen er og bytt farge i en hastighet som forholder seg til den.

 

Om det du sier virkelig fungerer har jeg heller større tvil på men du får være så god å prøve ^^

 

Liste over ms mellom hvert fargebytte ved forskjellige frekvenser:

 

50Hz: 20ms

60Hz: 16,666667ms

75Hz: 13,333333ms

80Hz: 12,5ms

100Hz: 10ms

120Hz: 8,333333ms

Lenke til kommentar

Hvert millisekund "/

 

Her er en som bytter hvert sekund:

	Private WithEvents tm As New Timer
Private randNumber As New Random

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
	tm.Interval = 1000 ' bytter farge hvert sekund. 2000 = hvert andre sekund.
	tm.Start()
End Sub

Private Sub tm_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles tm.Tick
	Dim r As Integer = randNumber.Next(0, 254)
	Dim g As Integer = randNumber.Next(0, 254)
	Dim b As Integer = randNumber.Next(0, 254)
	Me.BackColor = Color.FromArgb(r, g, b)
End Sub

 

Forresten, du må legge til en timer1 på form1 ;)

Lenke til kommentar

Hvor skal jeg legge

Private WithEvents tm As New Timer

Private randNumber As New Random ?

 

EDIT: Fant det ut, det var under "Public Class Form1"

 

EDIT igjen :whistle: : Jeg testet det nå og alt funket fint, men jeg trenger kun fargene rød, grønn, blå, svart, hvit og gul. Jeg kan ikke ha noen andre farger mellom de.

Hvordan skal jeg fikse det?

Endret av mikkello
Lenke til kommentar

   Private WithEvents tm As New Timer
Private randNumber As New Random

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
	tm.Interval = 1000 ' bytter farge hvert sekund. 2000 = hvert andre sekund.
	tm.Start()
	dim counter as integer
	counter = 1

	Dim r As Integer
	Dim g As Integer
	Dim b As Integer
End Sub

Private Sub tm_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles tm.Tick

if counter = 1 then 
	'skriv inn rgb-verdier for en av fargene her
	r = 123 ' mellom 0 og 254
	g = 123 ' mellom 0 og 254
	b = 123 ' mellom 0 og 254
 elseif counter = 2 then
	'skriv inn rgb-verdier for en av fargene her
	r = 123 ' mellom 0 og 254
	g = 123 ' mellom 0 og 254
	b = 123 ' mellom 0 og 254
 elseif counter = 3 then
	'skriv inn rgb-verdier for en av fargene her
	r = 123 ' mellom 0 og 254
	g = 123 ' mellom 0 og 254
	b = 123 ' mellom 0 og 254
 elseif counter = 4 then
	'skriv inn rgb-verdier for en av fargene her
	r = 123 ' mellom 0 og 254
	g = 123 ' mellom 0 og 254
	b = 123 ' mellom 0 og 254
 elseif counter = 5 then
	'skriv inn rgb-verdier for en av fargene her
	r = 123 ' mellom 0 og 254
	g = 123 ' mellom 0 og 254
	b = 123 ' mellom 0 og 254
 elseif counter = 6 then
	'skriv inn rgb-verdier for en av fargene her
	r = 123 ' mellom 0 og 254
	g = 123 ' mellom 0 og 254
	b = 123 ' mellom 0 og 254
 end if


 if counter < 6 then 'siden counteren er 6 før dette kjøres, så resettes counteren på 6
	counter = counter + 1 'plusse på 1 hvis vi ikke trenger flere enn 5 farger
else
	counter = 1 'reset-e counteren
end if



	Me.BackColor = Color.FromArgb(r, g, b)
End Sub

 

utestet, men burde være enkelt å fikse på

Endret av Ståle
Lenke til kommentar

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

Laster...
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...