Punkt durch Tastatur erstellen

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Minits
Beiträge: 30
Registriert: So 30. Okt 2016, 21:13
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Punkt durch Tastatur erstellen

Beitrag von Minits »

Hallo liebe Forumsmitglieder,

ich möchte während der Laufzeit meines Programmes durch Klicken der Leertaste einen Punkt in mein OpenGLControl1Paint hinzufügen.
Im anliegenden Code habe ich gesagt, beim Betätigen der Leertaste soll sich der Wert einer boolschen Variable ändern und daraufhin der Punkt im Timer erstellt werden,
weil ich dachte, er müsse vielleicht im Timer erstellt werden. Wenn ich den Punkt als Anweisung direkt nach der Tastenabfrage setze, passiert auch nichts.
Außerdem bewegt sich mein grüner Block auch nach links oder manchmal nach rechts, wenn ich die Leertaste drücke, obwohl ich diese Aktion an die linke/rechte Pfeiltaste gebunden hab.
Ich hoffe, mir kann jemand sagen, worin mein Fehler liegt oder was ich noch versuchen kann.
Dateianhänge
unit1.pas
(3.75 KiB) 66-mal heruntergeladen

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Punkt durch Tastatur erstellen

Beitrag von Mathias »

Du hast du das Prinzip von OpenGL nicht richtig verstanden, was das Neuzeichnen betrifft.

Guck mal am besten das Beispiel im Anhang an, dort sieht man gut, wie dies funktioniert. Auch sieht man dort gut, das man eine Mesh über Matrizen bewegt.
Dort hat es auch 2 Rechtecke mit Texturen, welche sich unabhängig drehen.

Dein links und recht gehört in ein glTranslate und nicht in glVertex3f. glTranslate macht eine Verschiebung in der Matrix.

Ich hoffe, das dir dieses Beispiel weiter helfen kann. ansonsten einfach weiter fragen.
Dateianhänge
Texturen_rechteck_Bitmap.tar.gz
(128.03 KiB) 68-mal heruntergeladen
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Minits
Beiträge: 30
Registriert: So 30. Okt 2016, 21:13
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Punkt durch Tastatur erstellen

Beitrag von Minits »

Vielen Dank für deine Antworten auf meine zahlreichen Fragen!
Ich habe da noch ein neues Problem, das mit dem hier wahrscheinlich in Verbindung steht.
Es handelt sich um ein 2D-Array aus BitButtons. Dieses müsste sich auf dem Bildschirm von links
nach rechts bewegen, dann nach unten und wieder nach links. Ich habe versucht, den left / top Wert
der Buttons im Timer zu ändern, woraufhin ich aber nur einen External-Fehler bekomme...
Hast du hierfür auch einen Rat, wie ich das lösen kann?
Vielen Dank im Voraus!
Dateianhänge
unit1.pas
(4.54 KiB) 58-mal heruntergeladen

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Punkt durch Tastatur erstellen

Beitrag von Mathias »

Es handelt sich um ein 2D-Array aus BitButtons.

Was willst du mit den Buttons innerhalb von OpenGL ?


Ich habe versucht, den left / top Wert
der Buttons im Timer zu ändern, woraufhin ich aber nur einen External-Fehler bekomme...

Wen du dies

Code: Alles auswählen

   for i:= 0 to 9 do begin
   for j:= 0 to 4 do begin
auch so machen würdest

Code: Alles auswählen

  for x := 0 to max.x - 1 do begin //For-Schleife die das Array beim Programmstart erzeugt
      for y := 0 to max.y - 1 do begin
dann hättest du den Fehler gesehen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten