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 165.

Werbeanzeige

17.02.2010, 13:52

Forenbeitrag von: »riCo«

Template-Klassenmemberfunktionen?

Der Aufbau der "hpp" (warum nicht einfach nur .h ?) ist prinzipiell korrekt. Du hast nun 3 Möglichkeiten. 1. Entweder du implementierst die Funktionen direkt in der Klasse selbst, was aber die mit Sicherheit schlechteste Variante ist. 2. Du kopierst den Teil deiner cpp und implementierst die Funktionen unterhalb der Klassendefinition. 3. Du kannst die ".cpp" als ".inl" verwenden. Dazu musst du nichts weiter machen, als unter der Klassendefinition im Header die ".inl"-Datei zu includen. Höchstwah...

29.06.2009, 12:26

Forenbeitrag von: »riCo«

string std::cout ausgabe

Kann man std::string so einfach mit cout ausgeben? Muss man da nicht .c_str() verwenden? Auch wenn es nicht die unbedingte Lösung deines problems ist, aber nutze doch einfach die printf-Funktion? Zu cout kann ich leider nicht mehr sagen, da ich das nie verwende.. Der ganze Funktions-Code wäre in dem Fall vielleicht sinnvoller, als deine Code-Fragmente.

23.06.2009, 13:13

Forenbeitrag von: »riCo«

Probelem bei dynamischen char array

@Gotbread Wenn schon INT main, dann auch den return-Wert nicht vergessen.. :roll:

23.06.2009, 12:19

Forenbeitrag von: »riCo«

2D in 3D umrechnen

Ich könnte nach wie vor zu der Thematik noch etwas Hilfe gebrauchen. Mir ist nicht ganz klar, welche Matrizen ich brauche und wie ich diese multiplizieren muss. Wenn mir es jemand Verbal erklären kann, würde das schon reichen (denke und hoffe ich).

23.06.2009, 10:43

Forenbeitrag von: »riCo«

Polygon zeichnen

Einen Polygon-Algorithmus zu finden der Löscher berücksichtig, ist recht schwer. Ein Dirty Trick könnte sein, dass loch einfach als normales Polygon zu zeichnen, aber eben in der Hintergrundfarbe. Wie das mit DX ist weiß ich nicht, ich musste das bisher immer nur 2D machen.

23.06.2009, 09:48

Forenbeitrag von: »riCo«

Polygon zeichnen

Das funktioniert doch aber nur bei ganz primitiven Polygonen! Besser wäre doch ein Ansatz für jede mögliche Polygon-Form. Da kommt die Polygon-Triangulation ins Spiel.. Es sei noch erwähnt: "Triangle fans are not supported in Direct3D 10 or later." Quelle: http://msdn.microsoft.com/en-us/library/bb206271(VS.85).aspx

23.06.2009, 09:04

Forenbeitrag von: »riCo«

Polygon zeichnen

Google mal nach "Polygon Triangulation", dass sollte dein Problem lösen. Da ich nicht aus der DirectX-Ecke komme, würde ich das so machen. Letztendlich wird DX intern nichts anderes machen..

22.06.2009, 15:20

Forenbeitrag von: »riCo«

[C++] Vor-/Nachteile mehrerer .cpp-Dateien

Das ist halt die "künstlerische Freiheit" des Programmierers. Der Code und Code-Style von 100 Entwicklern wird sich teils mehr oder weniger stark voneinander unterscheiden. Ich bin der Meinung, dass für jede Klasse eine eigene .cpp- und .h-Datei verwendet werden sollte. Ist eine zweite Klasse ganz klein, kann diese sicher auch in eine bestehende Datei integriert werden. Es ist halt Geschmacks- und Ansichtssache.. Stell dir mal vor du hättest ein etwas umfangreicheres Projekt und würdest den Code...

20.06.2009, 14:12

Forenbeitrag von: »riCo«

2D in 3D umrechnen

Im Prinzip schon. Du kannst Dir das wie bei einem normalem Navi vorstellen, wenn du vom 2D in den 3D Modus umschaltest. Ich habe 2D-Koordinaten und muss sie quasi irgendwie "3D darstellen".

19.06.2009, 11:25

Forenbeitrag von: »riCo«

2D in 3D umrechnen

Hallo Community, ich habe folgendes Problem. In meinem aktuellen Projekt zeichne ich ein Straßennetz zweidimensional. Ich habe also nur X- und Y-Koordinaten (bereits in Bildschirm-Koordinaten umgerechnet) vorliegen. Ich tue mich etwas schwer, den 3D-Modus richtig hinzubekommen. Mein Ansatz war es, eine Projektionsmatrix zu erstellen und damit die Punkte zu multiplizieren. Meine Idee war es, den Z-Parameter der der einzelnen Koordinaten mit 0 anzunehmen und die Projektionsmatrix (Z > 0) in einem ...

30.07.2008, 07:29

Forenbeitrag von: »riCo«

Fragen zu Winsock

zu 1. Ich denke, dass wird auf den Port ankommen! Ich kann mir kaum vorstellen, dass die Firewall Standardports (zb 80 http, port 21 ftp, ...) blockiert. Solltest du geblockte Ports verwenden denke ich nicht das du die Blockade so ohne weiteres aufheben kannst. Dann würde es ja jeder so machen und die firewall wäre nichtig. zu 2. Über diese Page solltest du eigentlich die IP deines Rechners erhalten.. Zitat Aber wie kann ich dem Router mitteilen, mit welchem PC er mich verbinden soll ? Was meins...

15.06.2008, 11:13

Forenbeitrag von: »riCo«

Problem mit Singleton-Basisklasse

Ich habe das Problem gelöst. Die Templateklasse muss tatsächlich ohne ELYSIUM_API gekennzeichnet werden. Allerdings ist das nur die halbe Lösung. Das Problem war die statische Variable des Singletons. C-/C++-Quelltext 1 2 template<class C> C* Singleton<C>::CurrentInstance = 0; ... löste das Problem.

15.06.2008, 10:31

Forenbeitrag von: »riCo«

Problem mit Singleton-Basisklasse

Ich bekomme diesen Linkerfehler einfach nicht raus. Vielleicht kann mir jemand helfen? Der Header im DLL-Projekt(die Engine) ("elys_engine.h") C-/C++-Quelltext 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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 // Elysium_Engine.h // #if defined _MSC_VER && _MSC_VER >= 1020 #pragma once #endif #ifndef __ELYSIUM_ENGINE_H_INCLUDED__ #d...

14.06.2008, 22:04

Forenbeitrag von: »riCo«

Problem mit Singleton-Basisklasse

Zitat von »"knivil"« Brauchst du denn ein Singleton, oder reicht ein einfacher namespace? Ein Namespace dient der Verhinderung von Namensüberschreitungen (Funktionen, Variablen, ...) und zur Einteilung von Quellcode in bestimmte Segmente. Mit Singleton verhindere ich, dass es von einer Klasse mehrere Instanzen geben kann. Was haben die beiden miteinander zu tun? Zitat von »"knivil"« Weisst du, was du da tust? ich denke schon... und du?

14.06.2008, 12:05

Forenbeitrag von: »riCo«

Problem mit Singleton-Basisklasse

Ich wollte es erstmal mit irgendeiner Singleton-Variante hinbekommen.

14.06.2008, 11:41

Forenbeitrag von: »riCo«

Problem mit Singleton-Basisklasse

Ich hatte es vorher über eine andere templatebasierte Singleton-Klasse versucht, aber das Ergebnis war nicht zufriedenstellend. Werde es jetzt mal auf die neue Klasse umstellen. Übrigens: Das allokieren über new könnte ich auch mit ner statischen Variable übergehen, weil sich über das löschen beschwert wurde..

14.06.2008, 10:52

Forenbeitrag von: »riCo«

Problem mit Singleton-Basisklasse

Hallo, ich habe da mal ein kleines Problem mit 'ner Singleton-Basisklasse. Hier die Singleton-Basisklasse: C-/C++-Quelltext 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 28 29 30 31 32 33 34 35 36 37 38 39 40 class ELYSIUM_API Singleton { public: static Singleton* exemplar(); private: static Singleton *instanz; Singleton() {} Singleton(const Singleton&); ~Singleton() {} class Waechter { public: ~Waechter() { if(Singleton::instanz != 0) { delete Singleton::instanz; } } }...

05.06.2008, 15:03

Forenbeitrag von: »riCo«

Dialogfeld in einer DLL

Dann leite die Funktion von der Basisklasse ab. Wenn du nicht weißt wie, schau am Besten mal in die MSDN oder frag bei Google nach. Was möchtest du eigentlich genau machen? Dialoge kann man auch ohne MFC bauen. Das ist zwar (je nach dem was man machen möchte) schwierger, aber die MFC ist doch teilweise ganz schön bescheiden..

05.06.2008, 07:56

Forenbeitrag von: »riCo«

Dialogfeld in einer DLL

Wenn du mit einem Standard MFC-Dialog arbeitest (Basisklasse: CDialog), gibt es eine OnInitDialog()-Funktion, die du nur zu überschreiben brauchst. Wenn du kein leeres MFC-Projekt erstellst, sollte die OnInitDialog()-Methode eigentlich schon existieren.

02.06.2008, 07:28

Forenbeitrag von: »riCo«

Dialogfeld in einer DLL

Du erstellst ein MFC-Projekt als DLL. Dort implementierst du deine Funktionen. Das DLL-Projekt erzeugt dir eine Library-Datei (*.lib), die du in dein Hauptprogramm einbinden kannst. (ALT+F7 --> Kategorie 'Link' --> den lib-name in das Feld 'Object/library modules:' eingeben). Eine librarydatei wird nur erzeugt, wenn du mindestens eine Funktion exportierst! Beispiel der DLL-Funktion: C-/C++-Quelltext 1 2 3 4 __declspec(dllexport) int MeineDllFunktion(VOID) { ; // ... } Benutzung der DLL-Funktion ...

Werbeanzeige