jhaaf Geschrieben 19. Juni 2001 Geschrieben 19. Juni 2001 Hallo an alle, ich schreibe gerade ein Programm in VB6 für meine ZULA und habe ein Problem: Ich will vertikale Linien über den Bildschirm wandern lassen. Dazu überschreibe ich eine Linie mit der Hintergrundfarbe und zeichne eine neue Linie mit neuen Koordinaten daneben. Doch die Linien flimmern! Wir kriege ich das Flimmern raus? Ich habe schon versucht, die Linien über Steuerelemente zu bewegen, doch dazu müßte ich jede einzelne Linie direkt ansprechen (Line1, Line2, ...). Ein Ansprechen mit einer Variablen (Linei) ist nicht möglich. Kann mir jemand helfen? Zitieren
Spike Geschrieben 20. Juni 2001 Geschrieben 20. Juni 2001 Hi, wie genau hast du das denn realisiert? Wenn der Code nicht allzulang ist paste ihn doch mal hier rein. Hast du irgendwelche Controls verwendet (z.B. Line)? Zitieren
E-Sorcerer Geschrieben 20. Juni 2001 Geschrieben 20. Juni 2001 Hi, sag mal wieso bewegst du die Lines nicht mit Hilfe der Koordinaten. Du kannst doch einfach mit Hilfe z.B. eines Timers alle 10tel Sekunde oder so die Line um soundsoviel Bildpunkte nach rechts, links, oben oder unten verschieben. Hab hier mal auf die schnelle ein kleines Beispiel codiert... Option Explicit Private y As Integer Private z As Integer Private Sub Form_Load() Line1.X1 = 0 Line1.X2 = 0 Line2.Y1 = 0 Line2.Y2 = 0 End Sub Private Sub Timer1_Timer() y = y + 10 z = z + 10 If y > Form1.Width Then y = 0 End If If z > Form1.Height Then z = 0 End If Line1.X1 = y Line1.X2 = y Line2.Y1 = z Line2.Y2 = z End Sub Versuchs doch mal so Bis denn... Zitieren
jhaaf Geschrieben 20. Juni 2001 Autor Geschrieben 20. Juni 2001 Vielen Dank für eure Antworten. Zunächst zu E-Sorcerer: Ich wollte die Linien über Variablen ansprechen, wie z.B. i = 1 While i>20 Linei.x1 = Linei.x1+1 Linei.x2 = Linei.x2+1 i = i+1 Wend Doch das läßt VB nicht zu. Meine Lösung war Linien zu zeichnen über Form1.Line, doch da flimmerts, weil ich die alte Linie erst löschen muß und dann die neue zeichne. Ich habe meinen Code mal auf's wesentliche beschränkt: While i < AnzahlLinien Picture1.Line (Linie(i), -500)-(Linie(i), -4500), QBColor(7) 'alte Linie überzeichnen Linie(i) = Linie(i) + RichtungLinie(i) * GeschwindigkeitLinie(i) 'neue position bestimmen Picture1.Line (Linie(i), -500)-(Linie(i), -4500), QBColor(4) 'neue Linie zeichnen i = i + 1 Wend Vielen Dank für eure Mühen jhaaf Zitieren
E-Sorcerer Geschrieben 20. Juni 2001 Geschrieben 20. Juni 2001 Hi, ich bin's nochmal. zu deiner Möglichkeit mit Variablen die Linien anzusprechen: Mach doch einfach ein Array vom Typ "object" und move deine Linien dann mit "Set Array(index) = Line1" usw dahin. Dann kannst Du die Line's auch in einer Schleife über das Array ansprechen. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.