3D zu 2D - Hilfe - (GM8 und Studio)

  • GM 8

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

  • 3D zu 2D - Hilfe - (GM8 und Studio)

    Hey, :D
    bin neu hier und wollte euch mal fragen ob einer mir helfen könnte aus einem "free to use" 3D Top-Down Shooter Multiplayer online Example die 3D funktionen zu entfernen und durch die 2D funktionen ersetzen?
    Versuche es jetzt seit knapp 2 tagen und bekomme es nicht hin :sauf:

    Es ist ein 3D Top-Down Shooter Multiplayer Example von The Sivart ( Youtube ) ( License.txt -> You can do whatever you want with this program. )
    -Es hat:
    -ein Chat System (muss man nicht verändern)(Script)
    -ein Score Board System (muss man nicht verändern)(Script)
    -ein Message System(muss man nicht verändern)(Script)
    -eine Anti lag funktion (code)


    Das Problem ist einfach das ich manche 3D functions nicht kenne und nicht in 2D functions "übersetzen" kann , wenn ihr versteht. :D
    Ich habe selber schon fast alle 39dll.dll Tutorials gelesen und verstehe auch die Grundlagen (Verbinden und Kommunikation) nur für weiteres gibt es keine gescheiterten Tutorials.

    Es wäre echt geil wenn einer mir helfen könnte und nicht nur mir, dies könnte jeden Anfänger helfen um die 39dll.dll besser zu verstehen und das alles in 2D und nicht direkt mit Brain-Blow-3D. :headtouch: (2d sprites sind mit vorhanden)

    Download: Link
    Für GM8 muss man die EZ Multiplayer.gmx benutzen und für Studio die EZMultiplayer Custom 1.2.gmx
    und wenn ihr unter fullscreen nur ein blackscreen habt: obj_control.Create -> //scr_set_fullscreen(); (dann funktioniert aber die Kamera nicht richtig weil die Auflösung zu klein ist)

    Die IP ändert man im obj_control.Create -> net_connect = net_client_connect("IP",2323);

    Ich bedanke mich jetzt schon mal für die vielleicht kommende Hilfe :D

    EDIT: Hoffe das ist die richtige Abteilung des Forums :huh:

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

  • Hallo hirasu,

    Ja es ist der richtige Forum-bereich. Ich habe jetzt die Example nicht heruntergeladen, weil Ich gerade im Bett am Handy bin. Andererseits habe Ich das Video gesehen und kann dir jetzt schon sagen, dass von 3D auf 2D leichter ist umzusetzen, als umgekehrt.

    Bei diesem blöcken z.B sollte es im Create-Event/+ im Draw event so welche funktionen geben:

    GML-Quellcode

    1. d3d_draw_block // d3d ist die 3D- funktion und zeichnet einen block - Draw event
    2. d3d_start // Das dindest du im Create-Event, diese startet das 3D des Objekts.
    3. d3d_end // beendet die 3D.
    4. und so weiter


    Entferne einfach diese Skripts, die mit "d3d" anfangen und schau weiter.



    Mfg,
    DefZombie
  • @DefZombie Danke für deine schnelle Antwort, ich hab es soweit geschafft das jetzt alles in 2d ist aber jetzt hab ich noch ein paar fragen bevor ich sagen kann das es fertig ist :D

    1.Ich musste den Health bar,die Player Name anzeige und mehr deaktivieren da die mit Funktionen der EX3D.dll verwenden um die aktuelle Position eines 3d Objektes zu bekommen.
    Nun zum code;
    Beispiel 1 - Muzzle flash :
    with(obj_client)
    {
    // x3d_get_2d_coord(x+lengthdir_x(17,image_angle),y+lengthdir_y(17,image_angle),16);
    // draw_sprite_ext(spr_gun_flash,0,x3d_get_x(),x3d_get_x(),1,1,image_angle,c_white,(shoot_time-7)/3);
    }

    x3d_get_2d_coord,x3d_get_x,x3d_get_x macht hier Probleme.

    Und hier die HP und Player anzeige:
    //hp
    if (global.my_dead == false)
    {
    // x3d_get_2d_coord(x,y,16);
    draw_set_color(c_green);
    draw_set_alpha(0.5);
    // draw_rectangle(x3d_get_x()-50,x3d_get_y()-60,x3d_get_x()+50,x3d_get_y()-50,false);
    draw_set_alpha(1);
    draw_set_color(c_white);
    if(global.my_hp >= 0)
    {
    // draw_sprite_stretched(spr_hp_2,0,x3d_get_x()-50,x3d_get_y()-60,global.my_hp,10);
    }
    //draw_sprite(spr_hp,0,x3d_get_x()-50,x3d_get_y()-60);

    //name
    draw_set_color(c_black);
    // draw_text(x3d_get_x()+2,x3d_get_y()-100+2,global.my_name);
    draw_set_color(c_white);
    // draw_text(x3d_get_x(),x3d_get_y()-100,global.my_name);
    }

    with(obj_client)
    {
    if (my_id != global.client_id && client_dead == false)
    {
    // x3d_get_2d_coord(x,y,16);
    draw_set_color(c_black);
    // draw_text(x3d_get_x()+2,x3d_get_y()-60+2,client_name);
    draw_set_color(c_white);
    // draw_text(x3d_get_x(),x3d_get_y()-60,client_name);
    }
    }


    Ich hab es mit obj_player.x/y | other.obj.player.x/y ausprobiert und es funktioniert nicht :/

    Hoffe jemand hat eine idee :)

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

  • in der Frage hast du geschrieben, das du mit der 39dll nicht klar kommst wobei die ja für Internet Verbindung da ist :D
    das 3D ist ohne Dll
    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
  • husi012 schrieb:

    in der Frage hast du geschrieben, das du mit der 39dll nicht klar kommst wobei die ja für Internet Verbindung da ist :D
    das 3D ist ohne Dll


    Ja ich weiß das es das 3D vom game maker ist aaaber es gibt in den projekt noch paar scripts die mit einer EX3d.dll läuft , wenn ich die NICHT lösche werden mir die functionen x3d_get_2d_coord,x3d_get_x,x3d_get_x blau angezeigt aber trozdem kommt ein error. (was ja klar ist da ich alle 3D funktionen gelöscht habe bzw deaktiviert)

    Und ja ich komme noch nicht ganz klar mit der 39dll.dll sonst würde ich hier nicht nach hilfe fragen ;)

    "wobei die ja für Internet Verbindung da ist :D"

    Das Projekt ist internet fähig und ist genau das was ich will :)

    EDIT:
    Hab fast alles fertig, wenn ich fertig bin lad ich es hoch.

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