Seite 3 von 4

Verfasst: 29.05.2007 14:11
von K.Putt
D@nte hat geschrieben:Der Source von K.Putt ist ja ganz nett aber ist es mit dem auch irgendwie möglich komplexe Zeichenketten direkt auf den Screen zu bringen oder muss man da jeden Buchstaben einzeln mit Pixeln darstellen?!
Hatten wir schon:
TextOut_()
siehe oben :-)

Schaue mal CDC bei der MSDN nach.
D@nte hat geschrieben:Und flimmer frei ist der Source trotzdem nit...
Na ja,
1. Du kannst die Routine für den Colorbot ja rausnehmen
2. bessere Graka oder schnellere CPU
3. Grafikdetails runterschrauben

Flimmerfrei ist auf jeden Fall hinzubekommen, man muss eben Prioritäten setzen.

Ansonsten schau dir OpenGL oder DirectX an, das wird aber komplizierter glaube ich, habe ich noch nie mit programmiert.

Kobra übernehmen Sie :-)


P.S.:
Wenn jemand Lust hat mit mir einen ColorBot zu schreiben,
ich bin gern zu haben, zur Zeit hänge ich an
GetDIBits_() fest.
Ansonsten wäre ein OpenGL Screenshot mit anschliessender Auswertung auch schön, raff ich aber auch nicht, bisher :evil:

Verfasst: 30.05.2007 09:46
von real
@K.Putt: Ist das ein gemeiner Code... :freak:

1. Du malst in einer Schleife jedes Mal das Crosshair neu. Den Delay(1) hast Du ja auskommentiert, damit sich das Programm alle Ressourcen fressen kann, die irgendwie verfügbar sind. Was sagt Deine Performance dazu (gerade in einem Spiel, dass jedes Mhz benötigt)? Der Hinweis auf die Priorität ist nett, aber sinnfrei.

2. Flimmerfrei bekommst Du das Ganze so nicht hin. Je mehr Du in Deinem Programm malst, desto mehr wird es flimmern. Hintergrund: Das Programm malt praktisch direkt in den Frontbuffer der Anwendung. Bei jedem Tausch von Backbuffer zu Frontbuffer wird Dein tolles Crosshair übermalt (und Du malst in Deiner Schleife einfach neu rein). Da fehlt jegliche Synchronisation.

@Programie: Es kommt darauf an, ob Du ein DirectX-Spiel oder ein OpenGL-Spiel malen willst. Wie schon oben geschrieben: bei einem OpenGL-Spiel ist ein Wrapper mit eigenen Funktionen schnell geschrieben, auch in PureBasic. Bei DirectX ist das etwas schwieriger in PureBasic (wg. des COM-Klassenmodells), da kommst Du in C++ wahrscheinlich schneller zu Ergebnissen (und es gibt für DirectX9 auch schon ein Wrapper-Template in C++, wie ich gesehen hab). Hier eine Seite, in der ein DirectX-Hook inkl. Quellcode für C++ zu finden ist.

Verfasst: 31.05.2007 13:35
von K.Putt
real hat geschrieben:@K.Putt: Ist das ein gemeiner Code... :freak:
Dafür dass es unmöglich ist finde ich den Code verdammt gut.

:twisted:

Verfasst: 31.05.2007 16:18
von Konne
K.Putt hat geschrieben:
real hat geschrieben:@K.Putt: Ist das ein gemeiner Code... :freak:
Dafür dass es unmöglich ist finde ich den Code verdammt gut.

:twisted:
Der Code auf keinen Fall verdammt gut. Auch nicht gut. Er ist einfach am Ziel vorbeigeschossen.

Verfasst: 31.05.2007 18:55
von K.Putt
Konne hat geschrieben:
K.Putt hat geschrieben:
real hat geschrieben:@K.Putt: Ist das ein gemeiner Code... :freak:
Dafür dass es unmöglich ist finde ich den Code verdammt gut.

:twisted:
Der Code auf keinen Fall verdammt gut. Auch nicht gut. Er ist einfach am Ziel vorbeigeschossen.
Vorher ist es unmöglich, hinterher nicht gut genug, ich verstehe schon :twisted:
Ihr gebt echt ganz schon trübe Tassen ab Jungs.
:allright:

Verfasst: 31.05.2007 20:24
von Fluid Byte
Ich glaube das nennt man "Perlen vor die Säue werfen"! Bild

Verfasst: 31.05.2007 21:21
von real
:allright:

@K.Putt: Weil Du so gut auf meine Posts eingehst und statt gutem Code tollen Sarkasmus bietest will ich mal ein Zitat von Dir bringen:
funktioniert aber flimmerfrei
ist leider einfach falsch.
:D

In einem anderen Thread hier wird übrigens auf die Möglichkeit eingegangen, per Overlay über eine 3D-Anwendung zu malen.

Verfasst: 31.05.2007 23:23
von Thorium
K.Putt hat geschrieben: Vorher ist es unmöglich, hinterher nicht gut genug, ich verstehe schon :twisted:
Ihr gebt echt ganz schon trübe Tassen ab Jungs.
:allright:
Wer hat eigentlich behauptet das es unmöglich ist? Es wurden schließlich andere Techniken wie Overlay und Direct3D/OpenGL-Hook angesprochen.

Verfasst: 03.06.2007 15:23
von Programie
Gibt es für das DirectX-Overlay auch Dll´s oder PureBasic-Libs?

PS: Hab hir mit Google was gefunden: Overlaying text onto screen of directx game?

Verfasst: 03.06.2007 18:29
von real
Schau bitte in den von mir oben verlinkten Post oder schau direkt in die Rubrik "Grafik & Sound - Programmierung", dort ist auch Purebasic-Code gepostet. Ich halte es für sinnlos, alles doppelt zu posten.