Game Settings Programmieren

    • Game Settings Programmieren

      Hi Leute,

      hab bisher nichts finden können. Aber gibt es vielleicht eine Möglichkeit die GameSettings per Code zu ändern?
      Ich hätte gerne einen Titelbildschirm für mein Spiel, der einfach nur transparent auf dem Desktop ist.
      Dafür müsste ich irgendwie Borderless Window umstellen können per Code und dann wäre noch das Problem das GM irgendwie keinen transparenten Hintergrund zulässt.

      So wie bei Borderlands auf dem Bild, sowas würd ich gern machen.
      Bilder
      • Untitled-3.png

        125,64 kB, 502×360, 74 mal angesehen
    • Also wenn du quasi eine Art launcher erstellen willst wo man zu beginn die Auflösung etc einstellt, das könntest du seperat in C schreiben oder sogar in virtual basic zusammenbasteln. Von dem kleinen Programm aus kannst du dann dein spiel starten
      132 little bugs in the code. 132 little bugs. Fix a few, set the compiler to stew, 172 little bugs in the code... :vogel:
    • Ja genau, soll einfach nur ein Launcher sein, wo man die Optionen einstellen kann und das Spiel starten kann, mehr nicht. Danach soll es dann in Vollbild wechseln und das Spiel direkt starten. Aber ich habe jetzt vor einem Jahr angefangen GML zu lernen, ich glaube C oder was auch immer für eine Sprache werde ich mir jetzt mitten im Projekt nicht antun. Dann werde ich wohl drauf verzichten müssen.

      Aber eine Frage zu den Optionen hab ich doch noch, ich lese grad in den Docs das man v-sync anscheinend auch nicht codetechnisch aktivieren/deaktivieren kann. Nur die Methode wie synchronisiert wird lässt sich ändern. Übersehe ich da was, ansonsten ist das doch mähhhh?
    • V sync und Anti aliasing kannst du mit der funktion display_reset einstellen. Wie ich oben schon sagte guck mal in virtual basic rein. Da brauchst du garnichts zu programmieren. Ich habs auch erst einmal benutzt und direkt geschafft einen trainer für crysis zu erstellen damals.
      132 little bugs in the code. 132 little bugs. Fix a few, set the compiler to stew, 172 little bugs in the code... :vogel:
    • ok, werde ich mir anschauen, danke dir rhazul

      €:Auf der offiziellen Seite von Microsoft steht auf der Downloadseite von Microsoft Visual Basic 6.0 folgendes:

      "Es wurde ein Sicherheitsproblem festgestellt, wodurch ein Angreifer möglicherweise die Sicherheit Ihres Windows-basierten Systems, auf dem Microsoft Visual Basic 6.0 Service Pack 6 ausgeführt wird, gefährden kann."

      Das finde ich eigentlich super das sie so ehrlich damit umgehen, aber sehr vertrauenserweckend ist das nicht :)

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von zhe73 ()

    • Hmm keine Ahnung hab das vor ner Ewigkeit benutzt. Kann auch sein das es Visual Studio hieß falls das einen Unterschied macht. Soweit ich mich erinnern kann musste man garnichts installieren. Ansonsten kannst du es ja wieder runterwerfen nachdem du deinen launcher erstellt hast
      132 little bugs in the code. 132 little bugs. Fix a few, set the compiler to stew, 172 little bugs in the code... :vogel:
    • Ne Visual Basic ist schon richtig, hab mir auch schon 2 kurze Videos angeschaut wo jemand einen Launcher baut. Scheint wirklich sehr einfach zu sein.
      2 Fragen schwirren mir nur im Kopf, vielleicht kannst du die ja auch beantworten, wobei die eine hast du ja schon indirekt beantwortet.
      1. Der User der mein Game spielt wird dann wohl kein Visual Basic brauchen auf seinem Rechner?
      2. Das Einbinden so eines Launchers wird sich dann hoffentlich auch nicht als so schwer erweisen oder. In dem Tutorial was ich grad sah hat er in seinem Launcher die .exe vom Spiel einfach verlinkt, ich hätte es wenn möglich dann doch eher so, dass man die .exe des Spiels klickt und der Launcher aufgeht. Also direkt ins Spiel integriert. Aber das wird schon irgendwie gehen oder?

      Aber wie gesagt, grad nur auf die schnelle 2 kleine Tutorials dazu gesehen....
    • 1. Nein braucht der Jenige nicht

      2. Um das zu integrieren solltest du am besten einfach eine DLL einbinden, die die diese Eigenschaften einstellt, wie du es haben willst. Ansonsten wirds wahrscheinlich sehr schwierig.
      Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
      Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

      Willst du mit mir auf Discord Chatten/Quatschen?
      Meine Husi's Tutorial Reihe
    • Um das zu integrieren solltest du am besten einfach eine DLL einbinden


      Wer ein Border/Caption-less Windows hinbekommt wäre der KING.

      Ich habe mal viel rumprobiert, aber keine Windows-Api Möglichkeit gefunden die den Fensterrahmen entfernt.

      In C/C++

      LONG lStyle = GetWindowLong(hwnd, GWL_STYLE);
      lStyle &= ~(WS_CAPTION | WS_THICKFRAME | WS_MINIMIZE | WS_MAXIMIZE | WS_SYSMENU);
      SetWindowLong(hwnd, GWL_STYLE, lStyle);
      WS_CAPTION is defined as (WS_BORDER | WS_DLGFRAME).

      remove the extended border styles:

      LONG lExStyle = GetWindowLong(hwnd, GWL_EXSTYLE);
      lExStyle &= ~(WS_EX_DLGMODALFRAME | WS_EX_CLIENTEDGE | WS_EX_STATICEDGE);
      SetWindowLong(hwnd, GWL_EXSTYLE, lExStyle);

      And finally, to get your window to redraw with the changed styles, you can use SetWindowPos.
      SetWindowPos(hwnd, NULL, 0,0,0,0, SWP_FRAMECHANGED | SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_NOOWNERZORDER);

      Oder:
      SetWindowLongPtr(*whandl,#GWL_STYLE,GetWindowLongPtr(*whandl,#GWL_STYLE)&~ #WS_CAPTION)

      ...funktionieren bei einem Standard-Fenster einwandfrei, aber die Zeichenverwaltung von GM und DX macht einen Strich durch die Rechnung.

      So etwas geht nicht mit GM.
      Die haben wohl nicht ohne Grund die Funktion "window_set_showborder" entfernt.

      Ich habe hier mal noch ein bisschen weiter probiert.

      Also Transparents oder runde Ecken gehen.

      Hier mein DLL-Beispiel:
      workupload.com/file/D5zBxEh

      ....
      Windows_Transparent nutzt diese API-Funktion:
      SetLayeredWindowAttributes
      mit LWA_ALPHA

      und setzt eben nicht nur den Hintergrund, sondern das ganze Fenster transparent. -> Das funktioniert aber!
      (Ist aber nicht der gewünschte Effekt)

      Die selbe Funktion mit
      LWA_COLORKEY

      soll eine beliebige Hintergrundfarbe einfach komplett entfernen -> Das funktioniert im Allgemeinen auch, aber nicht mit GM.

      -> Das Problem daran ist: GM zeichnet halt einen DX-Screen auf's Fenster, damit bringt die Api-Funktion leider rein gar nichts.

      Viel Spaß!

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Weihnachtswichtel ()