Autor Beitrag
Herr Bananerama
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 130



BeitragVerfasst: Do 01.11.07 13:01 
Hallo,
Ich hab mir vorgenommen Tetris zu programmieren und habe auch schon eine grobe Vorstellung wie ich das anstelle. Doch bevor ich loslege wollte ich mich gerne informieren, ob ich das mit einer Grafik engine machen soll oder nicht. Am liebsten würde ich es erstmal ohne versuchen, weil ich mich erlichgesagt bis jetzt noch nicht an sowas rangetraut hab. Wenn es jedoch absolut empfehlenswert ist eine zu gebrauchen, komme ich wohl kaum daran vorbei mich vorher durch ein Tutorial durchzuarbeiten :nut:.

Danke schonmal im vorraus :o
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Do 01.11.07 19:25 
Ich denke, ein DubbleBuffering mit einem TImage und einem TCanvas würde vollkommen reichen. Das hab ich mir selber ausgedacht, und ich glaube, ich muss das noch mal genauer erklären:

Du fügst ein TImage in dein Forumular, und ein TCanvas public oder private. In FormCreate erzeugst du das TCanvas und setzt die Ausmaße denen des TImage gleich.

Wenn du dann etwas zeichnen willst, zeichnest du es einfach in den TCanvas. Am Ende "flippst" du das ganze, das heißt, du kopierst den Inhalt des TCanvas in den Canvas von deinem TImage. Dann kannst du den Inhalt des TCanvas wieder löschen.

Das ganze funktioniert vollkommen flackerfrei, ist einfach, und du brauchst keine Engine. Ich denke, für Tetris müssten die Steuerfunktionen von Delphi vollkommen ausreichen. Sonnst kannst du ja GetAsyncKeyState benutzen. Das kannst du zum Beispiel in einem Timer einsezten.
Herr Bananerama Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 130



BeitragVerfasst: Do 01.11.07 19:52 
Danke, ich denke meine Frage ist damit geklärt, werd mich nochmal melden wenn alles funktioniert :)