Suchergebnisse
Suchergebnisse 1-20 von insgesamt 118.
Zitat von »"rFaust"« Die Viewmatrix sieht folgendermaßen aus: Quellcode 1 2 3 4 1.000000, 0.000000, 0.000000, 0.000000 0.000000, 1.000000, 0.000000, 0.000000 0.000000, 0.000000, 1.000000, 0.000000 0.000000, 0.000000, 0.000000, 1.000000 Die invertierte Viewmatrix ist mit der Viewmatrix identisch. Dies trifft zwar nur bei Matrizen zu, die nur aus Nullen und Einsen bestehen, ich bin mir aber trotzdem nicht sicher, ob die Invertierung korrekt ist. Diese Matrix ist die Identität Id, die alles so läs...
Hallo "Neva", WindowProc und WndProc sind einfach nur Funktionsnamen, und zwar für die Fensternachrichtenverarbeitungsfunktion - und bekanntlich darf man sich Funktionennamen ja frei aussuchen . In der WNDCLASS-Struktur ein Zeiger auf die Nachrichtenverarbeitungsfunktion angegeben werden, damit die Fensternachrichten an diese Funktion weitergeleitet werden können. Zwischen WindowProc, WndProc oder xyz besteht also inhaltlich kein Unterschied. Euer Nachtfreak NoName
Das ist offenbar keine Seltenheit
Da ja die Zeit für sich unterschiedlich bewegende Beobachten unterschiedlich schnell vergeht, ist eine Synchronisation in Multi-Player-Spielen sogar unmöglich.
Matrizenmultiplikation ist lediglich ein "Schiefkörper". Es gilt mat1 * (mat2 * mat3) = (mat1 * mat2) * mat3 (liefer mir doch mal ein Gegenbeispiel ), aber es gilt nicht (immer) mat1 * mat2 = mat2 * mat1.
Zitat von »"DragonMaster"« Als erstes. Die Reihenfolge der Multiplikationen ist nicht egal. C-/C++-Quelltext 1 mWorld = mScaling * mRotationX * mRotationY * mRotationZ * mTranslation; Setz mal besser ein paar Klammern: C-/C++-Quelltext 1 mWorld = (mScaling * (mRotationX * mRotationY * mRotationZ)) * mTranslation; Erst Skalieren, dann Rotieren, dann Transformieren Mathematische Anmerkung: Matrizenmultiplikation ist assoziativ, das heißt Klammern sind völlig egal. Sie ist nur nicht kommutativ.
Schon seit längerem wollte ich mir einen neuen Computer kaufen, leider bin ich bis zur jetzigen Stunde nicht dazu gekommen mich näher mit dem Thema zu beschäftigen. Dabei kommt es mir nur auf die Hardware an, Betriebssystem ist bereits vorhanden und Zusatzsoftware wird nicht benötigt. Der Gesamtpreis sollte um die 1000€ liegen (inklusive Brenner, Netzwerkkarte, etc.). Nun stellen sich natürlich viele Fragen: - Motherboard? - Welcher Prozessor (Intel, AMD)? - Welche Grafikkarte (NVidia, Radeon)? ...
::Move und ::Render müssen jeweils noch einen float-Parameter haben: tbResult Move (float fTime);
Du übergibst der memcpy-Funktion die Float-Werte, nicht ihre Adressen. Es muss heißen: C-/C++-Quelltext 1 2 3 memcpy (reinterpret_cast<BYTE*> (p1), f, sizeof(float)); memcpy (reinterpret_cast<BYTE*> (p1) + sizeof(float), f + 1, sizeof(float)); memcpy (reinterpret_cast<BYTE*> (p1) + sizeof(float)*2, f + 2, sizeof(float)); Warum benutzt du nicht C-/C++-Quelltext 1 memcpy (p1, f, 3 * sizeof (float)); ?
Warum nicht so: Quellcode 1 2 #define DIRECTORY "c:\\data\\" GetTexture(DIRECTORY "wand.bmp");
zu a) DefWindowProc ist die Standard-Fenster-Nachrichtenverarbeitungsfunktion, an die du deine Nachricht in deiner Nachrichtenverarbeitungsfunktion weiterleiten kannst. Sie ist bestimmt in irgendwelchen Windows-Headern deklariert. Einfach suchen. . zu b) Es ist nur ein Rückgabetyp vorhanden: CALLBACK ist eine Aufrufkonvention zur Kennzeichnung von "Callback"-Funktionen, wie der Name schon sagt. zu d) Wenn du WS_OVERLAPPEDWINDOW als Flag übergibst, heißt das, dass du ein Fenster mit Systemmenü, M...
Hallo! Folgendes Problem: Erstelle ich mit VC++ 6 eine leere Win32-Anwendung und füge Resourcen (z. B. ein Dialog) ein, so fehlt im die Datei Afxres.h (die im Ressourcen-Skript inkludiert wird). Das Problem ergab sich erst nach einer Neuinstallation. Ist dieses Problem bekannt?
Wenn dir alles, was geschrieben wurde, schon klar ist, wo ist dann noch das Problem?
zu 2: Der "||"-Operator funktioniert wie folgt: Var1 || Var2 == 0, genau dann, wenn Var1 = Var2 = 0 Var1 || Var2 != 0, genau dann, wenn Var1 != 0 oder Var2 != 0. Der "|"-Operator wendet den "||"-Operator auf jedes einzelne Bit an. Beispiel: Quellcode 1 2 3 4 unsigned char Var1 = 0xA7; // 1010 0111 unsigned char Var2 = 0x34; // 0011 0010 unsigned char Var3 = Var1 | Var2; // 1011 0111 = 0xB7 printf ("Var1 | Var2 = %H.\n", Var3); Ausgabe: Var1 | Var2 = 0xB7.
Komisch, beim ersten Mal hab ich es gleich auf 65 Sekunden geschafft . Mein Rekord liegt jetzt bei 2 Minuten :angel: ! Wird wohl an den Hardware-Komponenten liegen (spiele momentan auf einem Pentium 1 (Grafikkarte unbekannt) und mit Rollmaus) ;D . Da kann man sich es auch mal erlauben über die blauen Rechtecke zu "springen" ;D .
Klicke einfach auf Projekt | Dateien hinzufügen | Dateien ... (oder so ähnlich) und markiere die Dateien im "Allgemeines"-Verzeichnis.
Hm, das mit dem doppeltem Include dürfte eignetlich nicht sein, es wird immer nur das erste Suchergebnis eingebunden. Offenbar fehlen dir die Funktionen "InitWindow" und "ExitWindow". Die sind (, glaube ich,) auch nicht in der TriBase-Engine enthalten. Füge einfach die "C++"-Datei "InitWindows.cpp" aus dem Beispiel-Ordner in dein Projekt ein.
Ist mir auch schon mal so ergangen... Offenbar wird in DirectX 9 wird das Beenden eines Triangle Strips durch das doppelte Angeben des letzten Vertex in einer Reihe nicht mehr unterstützt.