Suchergebnisse

Suchergebnisse 1-20 von insgesamt 467.

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Lächerlich...

  • Zitat von DragonGamer: „ Und ich weiss dass cmdln eigentlich ein delete braucht, allerdings ist diese Variable ja solange in Benutzung wie die DLL geladen bleibt. Wenn die DLL nun aus dem GM mittels external_free gelöscht wird, wird auch der gesamte assozieierte Speicher freigegeben, oder nicht? “ Nein wird er nicht, generell gilt: Alle Objekte die du auf dem Heap erstellst (new, new[], malloc, ...) musst du selber auch wieder freigeben. Außerdem meinte ich, dass du ein delete[] für Arrays brauc…

  • Also, ich will jetzt deine Arbeit nicht verunglimpfen, aber ich hab schon beim ersten Blick ein paar Bugs gefunden. Bei C/C++ Neulingen sind vor allem memory leaks eine große Gefahr: Quellcode (1 Zeile) Das ist nicht nötig, da string eine Klasse ist und das Objekt wird auf dem Stack erstellt. D.h. der Destruktor wird automatisch aufgerufen, außerdem wird delete nur für Objekte auf dem Heap gebraucht. Quellcode (1 Zeile) Hier brauchst du delete[], da es sich um ein Array handelt. Noch ein Tipp: E…

  • Im GM: kA, aber Moolt's Methode hört sich sehr clever an. Allgemein: Picking wäre eine Lösung. Dabei wird einfach anhand der Mauskoordinaten eine Gerade im 3D-Raum berechnet und mit der Szene geschnitten. Ist nicht sonderlich kompliziert, aber ich vermute im GM ist das nicht so einfach zu realisieren.

  • Ich kann jetzt nur vom GM auf Windows reden, aber ja das ist normal. Wenn bestimmte Ereignisse eintreten (STRG + ALT + ENTF drücken, Standby-modus aktivieren) muss das DIrect3D-Device anschließend resetted werden. Dabei gehen alle Resourcen, die nur im VRAM liegen, verloren. Dazu zählen auch Texturen, auf die gerendert werden kann, im GM als Surfaces bekannt. Das einfachste Lösung ist m.E. eine Abfrage, ob das Surface noch existiert. Wenn nicht, dann muss es neu erstellt werden.

  • Ein Blick in die Hilfe genügt: Zitat: „string_lower(str) Returns a lowercase copy of str. string_upper(str) Returns an uppercase copy of str. “

  • Zitat von mar96k: „ Zitat von Soul Reaver: „Probiers doch mal mit dem Compiler direkt über die Konsole. “ Ohne die IDE also mit Texteditor erstellen und mit einem Compiler kompilieren. Wenn ja, wo bekomme ich denn her??“ Ja genauso. Den Compiler hast du schon, denn mit diesem kompilierst du über deine IDE. IDEs selbst können rein gar nichts mit deinem Code anfangen, sie führen einfach den Compiler aus und zeigen etwaige Fehler an, die dieser zurückgibt. Also falls du Codeblocks hast, verwendest …

  • Probiers doch mal mit dem Compiler direkt über die Konsole.

  • 3D Cam Problem

    Soul Reaver - - Expertenrunde

    Beitrag

    Gib den richtigen Up-Vektor an und dein Problem mit Rechts/Links ist gelöst...

  • 3D Cam Problem

    Soul Reaver - - Expertenrunde

    Beitrag

    Ich glaub ihr versteht die Funktion etwas falsch: Zitat: „d3d_set_projection(xfrom,yfrom,zfrom,xto,yto,zto,xup,yup,zup)“ wobei *up der lokale Vektor der Kamera ist, der hinaufzeigen soll. D.h. wenn du deine Kamera in -z Richtung blicken lässt, kann der Up-Vektor nicht (0, 0, 1) sein.

  • Zitat von DragonGamer: „Zitat von Soul Reaver: „Zitat von DragonGamer: „ Naja. hoffentlich belibt YoYo mit dem (hoffentlich geplanten) Game Maker 9 der Linie mit Zur-Laufzeit-cmpilierbaren Code treu. Dies war ja praktisch wirklich das was den Game Maker programmiertechnsich von allem anderen abhob.“ Nicht wirklich. Du kannst in eigentlich jeder Sprache eine Skriptsprache implementieren, mit der du dann Codes schreiben kannst, die zur Laufzeit interpretiert werden. Das ist jetzt nicht wirklich et…

  • Zitat von DragonGamer: „ Naja. hoffentlich belibt YoYo mit dem (hoffentlich geplanten) Game Maker 9 der Linie mit Zur-Laufzeit-cmpilierbaren Code treu. Dies war ja praktisch wirklich das was den Game Maker programmiertechnsich von allem anderen abhob.“ Nicht wirklich. Du kannst in eigentlich jeder Sprache eine Skriptsprache implementieren, mit der du dann Codes schreiben kannst, die zur Laufzeit interpretiert werden. Das ist jetzt nicht wirklich etwas besonderes.

  • DLL -> GM - viele Daten

    Soul Reaver - - Expertenrunde

    Beitrag

    Die Stringmethode ist mir auch spontan eingefallen, die GMAPI zu verwenden wäre wahrscheinlich am einfachsten, jedoch hast du daran sicher schon gedacht.

  • Aber wirklich, verwende std::string, um deine Strings zu speichern. Sonst baust du nur Memoryleaks ein, vor Allem, wenn du noch nicht so erfahren mit C++ bist.

  • Ich tippe darauf, dass der Pointer nur auf eine lokale Variable zeigt, die nach Funktionsende ungültig wird. D.h. sobald du den String, den du aus der DLL hast anzeigen willst, ist er schon wieder ungültig. Beispiel: Quellcode (2 Zeilen) Das wird nicht funktionieren, da foo nach dem Funktionsende wieder gelöscht wird. Bei Doubles hast du das Problem nicht, da ja der Wert selber zurückgegeben wird und kein Pointer.

  • Ich kann dir nur die Vollversion von VC++ ans Herz legen. Mit dieser kannst du DLLs debuggen, was auch perfekt mit GM-Spielen funktioniert. D.h. du startest dein Spiel, hängst die DLL an den Prozess an und kannst diese, wie ein normales C++ Programm debuggen. Unexpected Error? Darüber brauchst du dir dann keine Gedanken mehr machen, da du genaue Fehlermeldungen bekommst.

  • More Math Funktions

    Soul Reaver - - Erweiterungen & Tools

    Beitrag

    Ja genau, der Overhead des Aufrufs einer externen Funktion ist wirklich nicht zu unterschätzen. Wie du siehst ist in einigen Fällen genau dieser Overhead größer als die eigentliche Berechnung, was die GML Version schneller macht.

  • More Math Funktions

    Soul Reaver - - Erweiterungen & Tools

    Beitrag

    Ich bin mir nicht sicher ob point_in_circle() mit der Extension schneller ist, als eine reine GML-Version. Du musst bedenken, dass der Aufruf auch einen gewissen Overhead hat. Und gerade bei dieser Funktion, werden keine langsamen Routinen wie sqrt() gebraucht (Man kann ja auch (dx * dx + dy * dy) < r² vergleichen).

  • 3D Sprint gefühl

    Soul Reaver - - Technische Fragen

    Beitrag

    Ranzoomen kannst du indem du das FOV verringerst.

  • Zitat: „Erstmal machen, dann optimieren.“ Und was ist mit Planung? Ich würde das Implementieren einer guten Strukturierung nicht als Optimierung ansehen, sondern als einen Schritt, der aus guter Planung hervorgeht. Es bringt nichts einfach mal drauf los zu programmieren, wenn man sowieso weiß, dass man später das Grundgerüst umbauen muss.