Gibt es auch ein FlippBuffers() für ein Windows-Fenster

Anfängerfragen zum Programmieren mit PureBasic.
Zweihänder
Beiträge: 49
Registriert: 21.06.2007 14:40

Gibt es auch ein FlippBuffers() für ein Windows-Fenster

Beitrag von Zweihänder »

Folgendes Prob:

Ich habe nunmehr einen Grafikaufbau in einem Windows-Fenster hinbekommen. Da ich gerne ein rundenbasiertes Strategie-Spiel "zaubern" möchte handelt es sich dabei um den Aufbau einer Landkarte, die aus einzelnen Feldern besteht.

Leider ist dieser Aufbau schnarchend langsam.

Die Frage ist nunmehr, wie ich diesen verschnellern kann. Mit FlipBuffers() komme ich ja nicht weiter, da dieser Befehl mit OpenScreen einhergeht... :o
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag von PureBasic4.0 »

Wie wär's mit OpenWindowedScreen?
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Benutzeravatar
Hartmut
Beiträge: 56
Registriert: 15.09.2006 22:22
Kontaktdaten:

Beitrag von Hartmut »

Hallo,

FlipBuffers() ist eine screenorientierte Funktion.

Du kannst die Grafik doch zuerst programmintern auf einem Image aufbauen (2Ddrawing mit OutputID = Imageoutput(#DeinImage))
und dann auf ein Imagegadget bringen :
ImageGadget(#DeinGadget, x, y, Breite, Hoehe, ImageID(#DeinImage))
Das fertige Produkt steht dann also auf EINEM Imagegadget in deinem Fenster und das sollte eigentlich flott aufgebaut werden.

Ich weiß aber nicht, ob ich deine Fragestellung richtig interpretiere,
vielleicht konkretisierst du etwas - nötigenfalls mit BeispielCode.

Gruß : Hartmut
Zweihänder
Beiträge: 49
Registriert: 21.06.2007 14:40

Beitrag von Zweihänder »

Also folgendermaßen:

Ich möchte in einem Windowsfenster einen Teil einer Karte ausgeben. Die Karte soll sich aus mehreren quadratischen Feldern zusammensetzten und soll natürlich auch gescrollt werden können, da es sich ja nur um einen Ausschnitt handelt (wenn ihr Warlords kennt, dann wißt ihr was ich meine).

Die Karte ist ein zweidimensionales Array-Feld mit jeweils einer Zahl als Wert, der den Untergrund spezifiziert.

So, den Bildschirmaufbau des Kartenausschnittes habe ich nun mit einer Schleife "For i=1 to blablabla imagegadget..." (um es abzukürzen) hinbekommen. Allerdings baut sich die Karte sehr langsam auf. Man kann quasi zugucken, wie der Rechner jedes Feld einzeln hinsetzt und dann weitergeht. Dies soll nachher ja gerade nicht so sein.

Mit Openscreen und FlipBuffers war das ja alles kein Problem. Beim Programmstart war schups alles schnell da. Aber jetzt... Klar kann man ja jetzt sagen.. dann machs doch mit OpenScreen.

Ich finde die Windowsanwendung halt praktischer... :lol:

Für jede Hilfe bin ich immens dankbar. Ja ja, aller Anfang ist schwer :o
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag von PureBasic4.0 »

ich glaube, da war mal was mit tilemapping. musst du mal die Sufu oder so benutzen. Habe mich damit noch nie beschäftigt... :cry:
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Benutzeravatar
Hartmut
Beiträge: 56
Registriert: 15.09.2006 22:22
Kontaktdaten:

Beitrag von Hartmut »

... und du bist sicher, dass du nur EIN ImageGadget für die Ausgabe benutzt ?
Ich denke mal, das ist jetzt alles nicht konkret genug.
Wenn du etwas lauffähiges zum herunterladen hast, schau ichs mir gerne mal an.

Gruß : Hartmut
Zuletzt geändert von Hartmut am 25.06.2007 18:27, insgesamt 1-mal geändert.
Benutzeravatar
Machete @PB
Beiträge: 81
Registriert: 12.09.2006 03:12

Beitrag von Machete @PB »

Wieso machst du es nicht mit OpenWindowedScreen,? (Wie PureBasic4.0 schon sagte) OpenWindowedScreen hat alle Vor Teile von Screens und Windows wie zum Beispiel Clearscreen() und Flipbuffers()
Benutze Topos-PB-Version 3.3
Zweihänder
Beiträge: 49
Registriert: 21.06.2007 14:40

Beitrag von Zweihänder »

Danke, werd es mal ausprobieren... :mrgreen:
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

Eine kurze vermutung... baust du das Bild für das gesammte level auf oder nur für den ausschnitt den du grade darstellst?
Zweihänder
Beiträge: 49
Registriert: 21.06.2007 14:40

Beitrag von Zweihänder »

Ich baue natürlich nur den Ausschnitt auf. Aber ich muss der Vermutung von Hartmut recht geben. Ich baue nicht nur ein Gadget auf, sondern für jeden Teil eins. Also quasi 20x15). Könnte vielleicht daran liegen oder? :freak:
Antworten