Einige Anfängerfragen zu Game Maker Studio

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

  • Einige Anfängerfragen zu Game Maker Studio

    Ich bin zurück, kennt ihr mich noch?
    und

    Ich hätte einige Fragen zum Game Maker:

    1. Wie lässt man eine Textbox erstellen, wenn man einen Raum betritt? (bitte alles schreiben, wie man Textbox erstellt usw.)
    2. Wie erstellt man generell eine Textbox (RPG-Textbox), bitte für Anfänger erklären.
    3. Wie kann man machen, dass man etwas namens ''obj_shoot'' nur jede 20 Sekunden ausführen kann?
    4. Wie kann man HP / KP (Heart Points bzw. Lebenspunkte) anzeigen lassen und bei jedem Hit von einem Gegner (''obj_nebunter'') 10 HP entfernen lassen?
    5. Wie kann man (bsp. Thwomps / Steinblöcke aus Super Mario) Blöcke setzen, die wenn man nahe kommt, runterfallen?
    6. Ich habe mir einiges von Tasty Blue Games angesehen, danke für den Tipp, aber diese Fragen waren noch ungeklärt.

    7. Bitte alle Nummern einzeln erklären, also z. B. so:
    (1. Ja, das geht mit dem Code und mit dem usw.:...)
    (2. Das geht halt so: (Code) schau und da ist ja klar, wird das und das passieren)

    Grüße,

    CinoComeback :----S :) :rage: :rage2:
  • Also du kannst deine Fragen zu einer zusammenfassen. "Kann mir jemand Super Mario programmieren":D

    also zu 1: Das ist nicht leicht. Jedenfalls nicht wenn du darin schreiben möchtest.
    zu 2: eine Box machst du im draw-event eines objektes indem du draw_rectangle() schreibst.
    text selber schreibst du mit draw_text(); sieh dir hierzu unbedingt die hilfe an.
    ein tipp von mir: klick in einen befehl den du nicht kennst (z.b. draw_text) und dann drück f1. die hilfe wird geöffnet und erklährt dir was dieser befehl macht.

    zu 3. dazu musst du ein alarm[] event erstellen welches alle xy sekunden ausgeführt wird.

    vielleicht wäre für den anfang auch die drag and drop variante ratsam. damit bekommst du ein gefühl wie ein programm aufgebaut wird.

    Grundsätzlich gibt es für alles immer mehrere wege um es zu realisieren.
    einige sind schöner und andere sind eher "hingefudelt" wenn man so möchte.
    kümmer dich erstmal um ein einzelnes problem und mach alles nach der reihe. würde dir hier jemand auf all deine fragen eine ausführliche antwort schreiben, dann würde dich der Code erschlagen und du hast gar keine lust mehr dich weiter mit dem gamemaker zu beschäftigen


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

  • Vorerst - Danke.

    1. Gute Beschreibung. xD
    2. draw_rectangle? Ist das das Selbe wie im Drag and Drop? Draw Self oder so.
    (zum Tipp von dir: Muss ich F1 im Code-Kasten drücken oder wo anders? Das habe ich nicht ganz verstanden.)
    3. Okay. Kannst du mir da einen Code schicken bitte, denn das mit den Alarms verwirrt mich immer, obwohl ich es schon zwei mal genutzt habe.

    Ich würde aber eher mit Codes arbeiten, da damals, vor einem Jahr, als ich schonmal in der GameMaker-Domäne war, mir niemand mit Drag & Drop weiterhelfen wollte/konnte. Also will ich mich jetzt mit Codes auseinandersetzen.
    Ich gehe im März 2018 wieder in einen ''Game Maker-Kurs'' und bis dahin würde ich gerne noch viel lernen und weiter programmieren. :)

    Jedenfalls,

    Vielen Dank Gruen,

    Grüße, Cino
  • Alarm events sind eigentlich ganz einfach. Man muss nur darauf achten, dass sie nur einmal ausgeführt werden.

    würdest du also ins Step-event folgendes schreiben:

    Quellcode

    1. if(keyboard_check(vk_space)){//also wenn die Leertaste gedrückt wird
    2. alarm[0]=room_speed*20; //dann soll alle 20 Sekunden der alarm[0]-code ausgeführt werden.
    3. }

    dieser code würde nur einmal funktionieren. und zwar dann, wenn du die leertaste wieder loslässt.
    Warum? weil in jedem Step keyboard_check(vk_space) TRUE ist.
    Bedeutet das in jedem Step der countdown für dein alarm[0] event wieder von vorne anfängt.

    besser ist

    Quellcode

    1. if(keyboard_check(vk_space))and (alarm0_control=0){//also wenn die Leertaste gedrückt wird
    2. alarm[0]=room_speed*20; //dann soll alle 20 Sekunden der alarm[0]-code ausgeführt werden.
    3. alarm0_control=1;
    4. }


    alarm0_control ist eine variable die du nennen kannst wie du lustig bist.
    wenn du sie in diesem beispiel auf 1 stellst, dann musst du sie in deinem alarm[0]event wieder auf 0 stellen. damit gehst du sicher das der countdown nur dann neu startet, wenn das alarm[0] event einmal ausgeführt wurde.

    wenn du am coden bist und einen befehl eintippst wie z.B. draw_text(); dann makiere dieses draw_text mal und drücke die f1 taste. die hilfe öffnet sich


  • In deinem Gegner Objekt hast du ja dann im Create eine Variable definiert,zB HP = 3. Im Draw event des Objekts kannst du dann zB folgendes schreiben:

    GML-Quellcode

    1. draw_set_color(c_red);
    2. draw_set_halign(fa_center) //text zentrieren
    3. draw_text(x,y - sprite_get_height(sprite_index)/2,"HP: " + string(HP)) // malt HP über dem Gegner
    4. draw_set_halign(fa_left); //text links ausrichten
    5. draw_set_color(c_white);
    132 little bugs in the code. 132 little bugs. Fix a few, set the compiler to stew, 172 little bugs in the code... :vogel:
  • Hi CinoComeback
    So von Anfänger ( wie ich) zu Anfänger (wie du?), möchte ich dir ein paar Tipps geben (wenn ich darf?). Jedoch ohne Code. den findest du auf youtube zur Genüge erklärt;-)
    Allerdings weis ich nicht ob diese Optimal sind - Da darf ich gerne positiv kritisiert werden;-)
    Jedenfalls funktionieren diese bei mir:

    1. Ich erstelle mit Gimp ein Sprite und erstelle damit ein Object. Das kann ich dann beliebig laden z.B. mit Collision-Event usw. und mit Text füllen (draw_text und string)
    2. Mit einem Zeichnungsprog (siehe oben) oder direkt mit Gamemaker und div. Codes wie draw_rectangle, was Ressorcen schonen mag (siehe Tipp von Gruen, oben)
    3. Ohne die alarme[] zu Verstehen, kommt bei mir (fast) kein Programm zustande. (siehe Tipp von Gruen, oben)
    4. Falls object_1 mit object_2 kolidiert wird -10 abgezogen. if Befehle

    Zitat: Ganz am Anfang habe ich nur Programme geschrieben um einzelne Funktionen zu lernen/ auszuprobieren. Danach wurde es schnell grösser und relativ komplizierter :P
  • 1. Schriftart(font) erstellen dann im Draw Menü eines objekts:

    GML-Quellcode

    1. draw_set_font(font); draw_set_color(col); draw_text(x, y, string);


    2. Eine ausführliche Erklärung findest du hier : retrorpgs.wordpress.com/2014/1…reating-a-textbox-part-1/
    3. Die leichteste Lösung wäre ein alarm event aufzurufen welches dein Objekt anspricht/erstellt z.b.

    GML-Quellcode

    1. alarm[0] = room_speed*20

    4. im draw event eines objekts:

    GML-Quellcode

    1. draw_healthbar(x1, y1, x2, y2, amount, backcol, mincol, maxcol, direction, showback, showborder);
    wenn du amount z.b. auf 100 gesetzt hast kannst du nun 10 davon abziehen wenn der gegner getrofen wird . (Variablen musst du durch deine Werte ersetzen)
    5. Man erstellt z.b. ein Objekt für die Blöcke die Fallen sollen, dieses erstellt man nur per

    GML-Quellcode

    1. instance_create(x, y, obj);
    wenn es auch gerade für den Spieler sichtbar ist. im Step event des Objekts kann man dann abfragen ob der Spieler nah genug ist(distance_to_point(x, y);) um z.b. einen Alarm auszulösen damit der Block seine y Position ändert. Wenn der Spieler aus dem Sichtfeld raus ist kann man die Blöcke per

    GML-Quellcode

    1. instance_destroy();
    zerstören und so eine bessere Performance erzielen.
    6. Keine Ahnung was ich zu diesem Punkt erklären soll
    7. Alle Nummern wurden einzeln erklärt :P

    Es gibt zu den Punkten sicher bessere Lösungen ich hab die simpelsten genommen.