Gå til innhold

Bytte bakgrundsfarge hvert millisekund


Anbefalte innlegg

Jeg har tenkt å lage et program som endrer farge hvert millisekund, dette blir ganske kult og det skal hvist fjerne døde pixler. Jeg er en nybegynner og har ikke helt klart å lære timer så klarer ikke å lage dette programmet.

 

Hvordan skal jeg lage dette? Fint hvis noen poster en kode.

 

-Mikkello

Endret av mikkello
Lenke til kommentar
Videoannonse
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

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

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