Wie schreibe ich mit Gamemaker

  • GM 7

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

  • Wie schreibe ich mit Gamemaker

    Hallo,
    ich bin gerade dabei ein Programm mit GameMaker zu machen, wo mit man bei Tony Hawks Pro Skater 3 Smilies schreiben kann. Das wichtigste was das Programm machen muss ist das man eben Smilies einfügen soll. Ich meine das so: Ich drücke auf der Tastatur die Taste 1 aufn Numpad. Dann soll das Programm bei meinem Spiel eben die Tasten Enter + x + D drücken. Geht das überhaupt?

    Raymafa96
  • Das ganze funktioniert mit

    GML-Quellcode

    1. keyboard_key_press()

    Führ dies einfach mal hintereinander mür die verschiedenen Zeichen aus, also für dein Beispiel:

    GML-Quellcode

    1. keyboard_key_press(vk_enter)
    2. keyboard_key_press(ord("X"))
    3. keyboard_key_press(ord("D"))


    Grundsätzlich funktioniert diese Variante, aber die Frage ist, wie du zwischen Groß u. Kleinbuchstaben wechselst und außerdem muss das Programm im Hintergrund laufen damit es funktioniert.

    © 2008 by Teamgrill Productions
  • Danke erstmal für die schnelle antwort. Aber jetzt kommt das:

    ___________________________________________
    FATAL ERROR in
    action number 1
    of Key Press Event for Keypad 1 Key
    for object object0:

    COMPILATION ERROR in code action
    Error in code at line 1:
    keayboard_key_press(vk_enter)

    at position 1: Unknown function or script: keayboard_key_press
  • Raymafa96 schrieb:

    keayboard_key_press(vk_enter)
    Also, der Tippfehler ist schon ziemlich offensichtlich. :pinch:

    €dit: Zu spät. Aber mal im Ernst: Für sowas ist der Gamemaker doch absolut ungeeignet. Du willst doch ein Programm machen, damit Du während des Zockens nur eine Taste drücken musst um einen Smiley zu erzeugen, richtig? Aber damit das GM-Programm dies erreichen kann muss es den Fokus haben, also musst Du Tony Hawk dazu kurz verlassen (nicht beenden) - das ist doch noch langsamer und umständlicher als im Spiel einfach den Smiley zu schreiben, oder? Und abgesehen davon kann der GM doch nicht in Tony Hawk was reinschreiben wenn dieses nicht den Fokus hat. <.<

    Und belehrt mich wenn ich falsch liege. Ich dachte jedenfalls, dass der GM absolut nicht dazu geeignet ist um Programme zu erzeugen, die im Hintergrund laufen und auf Input reagieren sollen, während ein anderes Programm den Fokus hat. o.o

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

  • Raymafa96 schrieb:

    :headtouch: :fresse: :sleeping: Ja.... habs jetzt nochmal ausprobiert jetzt ist zwar kein Fehler aber nichts passiert!
    Wie gesagt: Wenn dein Programm den Fokus hat kann in Tony Hawk nichts passieren und wenn Tony Hawk den Fokus hat kann dein Programm wohl nichts machen (obwohl ich da wirklich nicht 100%ig sicher bin - vielleicht kann man doch irgendwie erreichen, dass GM-Anwendungen auch ohne Fokus auf Input reagieren?).
  • Das liegt daran, dass der Fokus auf Tony Hawk und nicht GM liegt. Mit dem GM wirst du da nicht weiterkommen!

    edit: War etwas zu langsam...
    In meiner psychisch soziologischen Konstellation, manifestiert sich die absolute Dominanz positiver Impressionen meines Individuums.
    Kurz: Ich bin geil!

  • Wie Fallout in seinem Edit erwähnt: Der Fokus liegt in diesem Fall auf Tony Hawk, und nicht auf dein GM Spiel. Das heißt das dein Tastatur befehl gar nicht in deinem GM Programm ankommt, sondern nur in Tony Hawk.

    Der Gamemaker ist dafür höchst ungeeignet. Wenn du sowas nur für eigenes Interesse benötigst such dir ein Programm mit dem du Hotkeys auf deine Tasten legen kanns, davon sollte Google genug finden.

    EDIT: zu langsam²



  • Möööp!
    Geht ja wohl.
    Schau dir mal die Funktion keyboard_check_direct an.
    keyboard_check_direct(key) Returns whether the key with the particular keycode is pressed by checking the hardware directly. The result is independent of which application has focus. It allows for a few more checks. In particular you can use keycodes vk_lshift, vk_lcontrol, vk_lalt, vk_rshift, vk_rcontrol and vk_ralt to check whether the left or right shift, control or alt key is pressed.

    Damit lässt sich auch ein Tastendruck abfragen, wenn das Game Maker Spiel keinen Fokus hat
    www.glowingorb.de
    „Wenn es im Universum noch irgendwo intelligente Lebewesen gibt, dann kennen sie vielleicht Schach, höchstwahrscheinlich jedoch GO

    (Schachweltmeister Emanuel Lasker)
  • Hab das mal in der Übersetzten GameMaker Hilfe nachgeguckt: keyboard_check_direct(key) Gibt an, ob die Taste mit dem angegebenen keycode gedrückt ist, indem die Hardware direkt geprüft wird. Das Ergebnis ist unabhängig davon, welche Anwendung grade aktiv ist. Es ermöglicht zusätzliche Überprüfungen. Insbesondere kannst du die keycodes vk_lshift, vk_lcontrol, vk_lalt, vk_rshift, vk_rcontrol und vk_ralt to prüfen, um zu erfahren, ob die linke/rechte Shift-Taste, die Control oder die Alt-Taste gedrückt ist.

    Also muss ich das so machen im press Keyped 1 event machen:

    GML-Quellcode

    1. keyboard_check_direct(ord("X"))
    2. keyboard_check_direct(ord("D"))
    3. keyboard_key_press(ord("X"))
    4. keyboard_key_press(ord("D"))
  • Also ich würde das ja so machen:

    GML-Quellcode

    1. // Create Event:
    2. active = true;
    3. // Step Event:
    4. if (keyboard_check_direct(vk_numpad1) && active) {
    5. active = false;
    6. keyboard_key_press(vk_shift);
    7. keyboard_key_press(ord("X"));
    8. keyboard_key_release(ord("X"));
    9. keyboard_key_press(ord("D"));
    10. keyboard_key_release(ord("D"));
    11. keyboard_key_release(vk_shift);
    12. }
    13. if (!keyboard_check_direct(vk_numpad1)) {active = true;}
    Alles anzeigen

    Das active ist dazu da, dass das Programm die Tastendrücke nur einmal simuliert, wenn die 1 gedrückt wurde. Shift drücken wäre auch keine schlechte Idee. Allerdings weiß ich nicht, ob das das Programm überhaupt richtig wahrnimmt, eventuell kannst du ein paar sleep(100); dazwischen packen. :)
  • copyboy schrieb:

    Also ich würde das ja so machen:

    GML-Quellcode

    1. // Create Event:
    2. active = true;
    3. // Step Event:
    4. if (keyboard_check_direct(vk_numpad1) && active) {
    5. active = false;
    6. keyboard_key_press(vk_shift);
    7. keyboard_key_press(ord("X"));
    8. keyboard_key_release(ord("X"));
    9. keyboard_key_press(ord("D"));
    10. keyboard_key_release(ord("D"));
    11. keyboard_key_release(vk_shift);
    12. }
    13. if (!keyboard_check_direct(vk_numpad1)) {active = true;}
    Alles anzeigen

    Das active ist dazu da, dass das Programm die Tastendrücke nur einmal simuliert, wenn die 1 gedrückt wurde. Shift drücken wäre auch keine schlechte Idee. Allerdings weiß ich nicht, ob das das Programm überhaupt richtig wahrnimmt, eventuell kannst du ein paar sleep(100); dazwischen packen. :)


    Habs mal im Editor ausprobiert (also hab numpad 1 gedrückt. Funkst aber immer noch nich! Aber danke für eure Hilfe :)
  • keyboard_key_press bezieht sich doch nur auf den GM Context. Du müssest praktisch auf den Context von Tony Hawks zugreifen und dort diesen Befehl ausführen... Deswegen wird es mit den Standard Funktionen von GM nicht laufen!
    In meiner psychisch soziologischen Konstellation, manifestiert sich die absolute Dominanz positiver Impressionen meines Individuums.
    Kurz: Ich bin geil!