Taste "B" drücken, und Menü 3D wie??

  • GM 8

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

  • Taste "B" drücken, und Menü 3D wie??

    Hallo,

    Also, ich möchte, wenn ich im Spiel bin ( 3D FPS ), dann wenn ich mit waffe rumlaufe undso, und dann die taste "B" drücke, dann eine Menü ( im Spiel kommt + einer Pfeil ) damit ich eine andere waffe auswählen kann.

    Aber wie erstelle ich eine Menü im ( 3 Dimensionallen ), bei einem 2D wars einfach, einfach "Create event" - x,z auswahl. aber bei 3D?
  • Soweit ich das verstanden habe, musst du mit den Funktionen:

    GML-Quellcode

    1. d3d_set_projection_ortho(x,y,w,h,angle); //Einstellungen
    2. d3d_set_hidden(false);
    3. draw_set_alpha(alpha); //Deine Alpha einstellen
    4. draw_sprite_ext(sprite,subimage,x,y,xscale,yscale,rot,color,alpha); //Bei color normalerweise "c_white"
    5. draw_set_alpha(1);
    6. d3d_set_hidden(true);

    dein Menü erstellen.

    Guck dir die Funktion an, im FPS-Example von YYG wird die genauer erklärt und eingesetzt.
  • Am besten du setzt den Code dann in ein einzelnes draw-objekt, dem du eine depth von -10000 oder höher gibst. Dadurch, dass es die kleinste depth hat, wird es als letztes von der Grafikkarte gezeichnet und es entstehen auch keine weiteren Probleme, z.B., dass 3D Objekte darüber gezeichnet werden.

    Zu dem Code von Lizard:
    Das draw_set_alpha() ist eigentlich nicht notwendig und kann weggelassen werden.

    GML-Quellcode

    1. d3d_set_projection_ortho(x,y,w,h,angle);
    2. d3d_set_hidden(false);
    3. //hier einfach alles reinschreiben, was gedrawt werden soll, genauso als ob man in 2D drawn würde.
    4. d3d_set_hidden(true);


    Bei d3d_set_projection_ortho() gibt man normalerweise bei x und y 0 ein und bei width und height die Fensterbreite/-höhe, die normalerweise genauso groß ist, wie das Sichtfeld. Dadurch wird das komplette Fenster zum drawen abgedeckt. angle ist normalerweise 0, weil du es ja nicht drehen willst.