Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Suchergebnisse

Suchergebnisse 1-20 von insgesamt 34.

Werbeanzeige

01.11.2003, 10:33

Forenbeitrag von: »Snorky«

Wo finde ich mehr Infos zur DLL- / Plugin-Programmierung?

Wie die Überschrift schon vermuten läßt, bin ich auf der Suche nach mehr Infos über die dll-Programmierung. Ich möchte mein Programm Plugin-fähig gestalten und möchte nicht nur auf C-Funktionen, sondern auch auf Klassen also C++-Stuff zugreifen können. Das Kapitel 9.8 im Buch hat mir schon ziemlich geholfen, nur sind mir die vier Seiten zu wenig. Jetzt wollte ich mal wissen, ob mir jemand Bücher oder Onlinetutorials empfehlen kann, wo ich mehr finden kann.

26.09.2003, 14:02

Forenbeitrag von: »Snorky«

Snorky's inoffizielles TriBase-Update

Hallo Leute :huhu: wie ich gesehen habe, wurde des öfteren nach einem Enginupdate oder nach einem Patch gefragt. Außerdem hatten einige Probleme meine Codeschnippsel funktionstüchtig in die eigene Engine zu integrieren. Nun, hiermit möchte ich alle meine Änderungen an der Engine als gebündelte Version zur Verfügung stellen. Es sind nur meine Änderungen enthalten, also nur das, was ich der Engine hinzugefügt oder verändert habe und ergibt die Version, mit der ich gerade arbeite. Die Codedateien s...

14.09.2003, 22:53

Forenbeitrag von: »Snorky«

tbVideo mit Speicherleck und gelegentlichem Abbruch

Sehr verwirrend alles. TB_SAFE_RELEASE bricht bei mir ab (tbExit wird automatisch aufgerufen) und TB_SAFE_DELETE bringt besagten Assert-Fehler: Debug Assertion Failed! Program: bla.exe File: dbgheap.c Line: 1132 Expression: _CrtIsValidHeapPointer(pUserData) Blabla Was auch ein möglicher Fehlergrund sein kann, ist dass m_pRenderer vom Typ IBaseFilter ist, aber Speicher der Form tbVideoRenderer zugewiesen bekommt. Vielleicht kommt er deswegen nicht klar. Etwas anderes wäre das Entfernen des Filter...

14.09.2003, 18:44

Forenbeitrag von: »Snorky«

tbVideo mit Speicherleck und gelegentlichem Abbruch

Hallo David, kann ich Deine Aufmerksamkeit vielleicht auf dieses tbVideo-Problem lenken? :help: Sieht nicht so aus, als ob mir hier andere Forenbesucher weiterhelfen können. Möglicherweise hast Du eine Idee oder womöglich schon eine Lösung parat? Gruß

29.08.2003, 09:51

Forenbeitrag von: »Snorky«

tbDirect3D Fenstererstellung im Vollbildmodus mit Bug

Hab WinXP, kann natürlich sein, dass es daran liegt, wundert mich jetzt aber schon ein wenig. Du weißt aber, was ich mit dem Bug meine, dass man das (Vollbild-)Fenster mit einem Mausklick auf der Titelleiste bewegen kann, oder? Tja, dann handelt es sich wohl um ein rechnerspezifisches Problem. Aber gut zu wissen, wenn man bei den Systemanforderungen des Spiels nicht einige Betriebssysteme ausschließen möchte.

28.08.2003, 20:58

Forenbeitrag von: »Snorky«

tbDirect3D Fenstererstellung im Vollbildmodus mit Bug

Hmm, habs mal ausprobiert, bei der WS_OVERLAPPED | WS_VISIBLE -Version kam bei mir der gleiche Bug-Effekt wie ursprünglich auch. Hinzu kommt noch, dass dann der Fenstermodus nicht mehr skalierbar ist und die Minimier/Maximier/Exit-Buttons in der Leiste fehlen.

28.08.2003, 19:32

Forenbeitrag von: »Snorky«

tbDirect3D Fenstererstellung im Vollbildmodus mit Bug

Einen interessanten Effekt kann man beobachten, wenn man folgendes tut: Ein Direct3D-Tribase-Programm im Vollbildmodus starten (z.B. ein Beispielprogramm wie das Alphablending aus Kapitel 2.8 ). Sich die Maus denken und ganz nach oben bewegen, so dass sich der gedachte Mauszeiger (der immernoch existiert und im Hintergrund läuft) auf der sich zu denkenden Titelleiste des (Vollbild-)Fensters befindet. Dann die Maustaste drücken und gedrückt gehalten nach unten bewegen. Effekt: Wenn die Maus den R...

28.08.2003, 19:06

Forenbeitrag von: »Snorky«

Pogramm stürzt ab

Das mit State_Stopped hat mich auch etwas irritiert, denn mit tbMusic ist es das Gleiche Problem, deswegen hab ich vor nicht all zu langer Zeit die Engine dahingehend erweitert. Wer dieses Feature immernoch vermisst, den kann ich nur auf meine Berichte im Forum verweisen. Einfach zu erreichen mit dem tollen "Search"-Button in der oberen Leiste und dann entweder nach "tbVideo" oder "tbMusic" suchen oder unter Autor "Snorky" eingeben. In den Einträgen zu "tbMusic und Abfrage von GetState" und "tbV...

24.08.2003, 17:10

Forenbeitrag von: »Snorky«

tbVideo mit Speicherleck und gelegentlichem Abbruch

Jo, das habe ich ja auch versucht, sobald ich aber den Speicher mit safedelete freigebe kommt der Assertfehler, egal ob ich den Filter vorher rausnehme, oder nicht. Ich kenne mich mit Asserts nicht sonderlich aus, aber ich vermute, dass das Problem vom Pointertyp stammt. m_pRenderer ist vom Typ IBaseFilter*, allerdings wird ihm Speicher vom Typ tbVideoRenderer zugewiesen. Also habe ich mal den Speicher beim freigeben auch wieder ins richtige Format gecastet Quellcode 1 2 if(m_pRenderer != NULL) ...

23.08.2003, 22:46

Forenbeitrag von: »Snorky«

tbVideo mit Speicherleck und gelegentlichem Abbruch

Tja, diesmal komme ich einfach nicht weiter. :crying: Wenn man sich die tbVideo-Struktur etwas genauer ansieht, stellt man fest, dass es einen Pointer gibt Quellcode 1 IBaseFilter* m_pRenderer; der zwar in Quellcode 1 2 3 4 5 tbResult tbVideo::Init(char* pcFilename) { // Neuen Video-Renderer erstellen m_pRenderer = new tbVideoRenderer(NULL, &r); } belegt, aber nirgends mehr freigegeben wird. Naja, man denkt sich natürlich, easy, hauen wir mal Quellcode 1 TB_SAFE_DELETE(m_pRenderer); in den Destr...

22.08.2003, 00:16

Forenbeitrag von: »Snorky«

tbVideo, tbVector4 und andere Änderungen

Vielleicht, wenn man in der einen Zeile noch das m einfügt, so dass es + v.w * m.m44); heißt? Dann sieht wenigstens der Compiler einen Sinn darin ^_^

22.08.2003, 00:07

Forenbeitrag von: »Snorky«

tbVideo, tbVector4 und andere Änderungen

Wie meinen? ??? Quellcode 1 2 3 4 5 6 7 struct { float x; float y; float z; float w; }; in die tbVector4-Klasse einzufügen ist ja keen Ding, aber was Du mit dem tbVector3TransformCoords() meinst kann ich nicht nachvollziehen. Also rate ich mal, dass Du in der tbUtils folgendes stehen haben möchtest? h: Quellcode 1 TRIBASE_API tbVector4 tbVector4TransformCoords(const tbVector4& v, const tbMatrix& m, float* pfOutW = NULL); // 4D-Vektor mit Matrix multiplizieren cpp: Quellcode 1 2 3 4 5 6 7 8 9 10 ...

21.08.2003, 22:36

Forenbeitrag von: »Snorky«

tbVideo, tbVector4 und andere Änderungen

Hoi, tbVideo musste von mir leider ebenfalls ein paar Änderungen im Stile von tbMusic erfahren. Wieder das Gleiche mit dem aktualisieren des Standes von m_bPlaying und Process(). Außerdem ist eine DrawVideo()-Methode hinzu gekommen, mit der es schnell und einfach geht, das Video auf den Monitor zu bringen (aus Kapitel 9.2 geklaut ). Hier sind nur die Änderungen aufgelistet: tbVideo.h Quellcode 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 // ****************************...

21.08.2003, 14:16

Forenbeitrag von: »Snorky«

Erweiterung

Gesagt, getan! ;D Hiermit ist die ButtonHandlerKlasse um eine Callbackfunktion für jeden Knopf reicher. Die Methode AnyKeyPressed mag zwar doppelt sein, ich hab sie aber vollständigkeitshalber mit eingeführt. Dann kann man die wahren DirectInput-Buttons verstecken und nur noch den ButtonHandler verwenden. Dann braucht man nicht immer hin und her zu springen. Ok, auf zur Erweiterung! Damit ich nichts vergesse und auch keine Missverständnisse entstehen können gibts hier die beiden Dateien noch mal...

20.08.2003, 00:37

Forenbeitrag von: »Snorky«

ButtonHandler für Tastatur- und Maustasten-Verhalten

Hallo, es ist wieder soweit ;p Diesmal hab ich die Engine um einen ButtonHandler erweitert. Etwas ähnliches habe ich auch bei Galactica gesehen, nur wollte ich das als Klasse in die Engine integrieren. Demnach heißt die Klasse tbButtonHandler, bekommt das Bool-Array, das man von tbDirectInput::GetState() erhält und ermöglicht damit zu dem KeyPressed() auch einen KeyReleased()-Aufruf. Denn bis jetzt konnte man nur abfragen, ob eine Taste gedrückt ist (soweit ich weiß). Nun kann man auch abfragen,...

18.08.2003, 13:00

Forenbeitrag von: »Snorky«

tbMusic und Abfrage von GetState

Zitat Auuusgezeichnet Gibt es den neuen Engine-Code auch zum downloaden? Da sind sicher im Lauf der Zeit noch andere Fehler behoben worden oder Teile erweitert, die ich vielleicht nicht mitbekommen habe. Wäre echt cool, wenn der neueste Stand irgendwo irgendwann irgendwie erhältlich wäre. Vielleicht als Zip-Update bei den Nachträgen oder so. :-)

18.08.2003, 11:04

Forenbeitrag von: »Snorky«

Speicherfreigabe

Zitat Gut, dass es Dich gibt Hach danke, jetzt hat mein Ego endlich wieder einen Auftrieb erhalten ;D Ich habe Unload wegen der Anlehnung an Deinen Spielen genommen, UnInit ist hier aber sicher Vernünftiger. Was den Texturmanager angeht, da hab ich mitlerweile das Makro TB_SAFE_MEMFREE bewußt wahrgenommen :wirbel: Anstatt in DeleteAllTextures Quellcode 1 2 tbMemFree(m_pTextureList); m_pTextureList = NULL; aufzurufen, sollte man auch das verwenden, was geplant war Quellcode 1 TB_SAFE_MEMFREE(m_p...

17.08.2003, 23:47

Forenbeitrag von: »Snorky«

Kleine Änderungen an tbMusic

Das mit tbMusic:rocess() hab ich schon gesehen, hab nur gedacht es gäbe eine Funktion zum abprüfen, also das was eigentlich GetState() machen sollte. Wenn dem aber nicht so ist, dann füge ich sie hiermit selber ein ;D Dazu wird einfach folgende inline-Funktion in die tbMusic.h eingefüt. Quellcode 1 inline BOOL IsPlaying() {return m_bPlaying;} Und wenn wir schon mal dabei sind auch eine Unload(), denn Programmierer sind die faulsten Menschen auf der Welt und jedesmal den Pointer freizugeben um ih...

17.08.2003, 17:13

Forenbeitrag von: »Snorky«

tbMusic und Abfrage von GetState

Hallo :huhu: , zur Zeit befasse ich mich ein klein wenig mit tbMusic, hab aber ein Problem mit dem Abspielen, bzw. eher mit dem Abfragen des zur Zeit laufenden Stücks. Quellcode 1 2 3 4 5 6 7 8 9 10 11 tbResult CIntro::Init() { m_pMusic = new tbMusic; if(m_pMusic->Init("Data\\Aahh.mp3")) { // Fehler! TB_ERROR("Fehler beim Laden der Musik!", TB_ERROR); } m_pMusic->Play(FALSE); return TB_OK; } In der Init wird also das erste Musikstück geladen und abgespielt. Quellcode 1 2 3 4 5 6 7 8 9 10 11 12 1...

16.08.2003, 15:48

Forenbeitrag von: »Snorky«

Die Frameratenbremse

Jo, danke David, es scheint also seine Berechtigung zu besitzen, also habe ich meine Finger davon gelassen Nun aber zur Frameratenbremse. Dazu habe ich die tbDoMessageLoop() umgeschrieben. Jetzt verhält sie sich wie vorher auch, nur hat noch besagte Erweiterung bekommen. Man kann die alte also durch diese ersetzen und weiterhin wie gehabt verwenden, ohne Einschränkungen zu erfahren (sollte zumindest so sein). Wem das aber trotzdem nicht ganz geheuer ist, kann sie ja nur einfügen und in z.B. tbDo...

Werbeanzeige