einen Pacman erstellen - Bitte helfen!

  • GM 7

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

  • Alerus schrieb:

    Ach ja, btw: Wie füge ich hier eigentlich diese Symbole vom Game Maker ein, damit man so D&D übersichtlicher zeigen kann?
    gamemaker.info/de/icons
    Auf das Icon klicken, und dann hier den BB Code rein schreiben, dann wird das nachher im Beitrag als Icon angezeigt.

    Zu dein Pacman:
    Also da kann man ja so rumlaufen wie man will, ich dachte du machst das so, das der immer auf das nächste Feld geht, das wäre dann auch einfacher mit den Laufen, wenn man nach rechts / links laufen will oder nicht?
  • Ok, gut, Metalknight hat mir jetzt ein Example gegeben, das einwandfrei funktioniert.
    Jetzt habe ich nur noch drei Probleme und dann ist mein PacMan fürs erste fertig. :gmlove:

    Wenn ich den Bonus aufsammle, dann sollen sich ja alle Geister in das Obj_scared verwandeln. Und da sind alle drei Probleme: Problem Nummer 1: Aus irgendeinem Grund werde ich wieder an den Anfangspunkt zurück versetzt, und ich glaube, ich verliere sogar ein Leben, wenn ich mit den erschreckten Geistern in Kontakt komme. Die Events und Actions für meine Geister sind bisher so:

    Also bei Pacman erstmal:

    collision with obj_bonus (Das Objekt, welches die Geister essbar macht)
    for all obj_enemy change instance into obj_scared
    for all obj_scared set alarm 0 to 160

    collision with obj_scared
    for other object: jump to the start position
    for other object: change instance into obj_enemy


    Und dann bei obj_scared
    im 0 Event:
    change instance into obj_enemy

    So meine Probleme sind jetzt:
    Nr.1) Ich kann aus irgendwelchen Gründen die obj_scared nicht auffressen.
    Nr.2) Ich kann es nicht so machen, dass der Geist nach dem aufessbar sein, wieder so wird, wie vorher. Denn ich habe ja sechs unterschiedliche Gegner, die alle unterschiedliche Objekte sind, aber nur ein essbar-Objekt. Oben habe ich rein zur Übersichtlichkeit einfach immer obj_enemy für alle Geister benutzt.
    "Hm...? Ob ich die Signatur bin? Nö, ich putz hier nur.
    Die Signatur is' da unten."

    Diskutiere nie mit Idioten, denn sie ziehen dich auf ihr Niveau herunter und schlagen dich dann mit ihrer Erfahrung! :D

    In letzter Zeit vermelden wir ein häufiges Verschwinden von Senioren im World Wide Web. Wir raten sämtlichen älteren Leuten daher DRINGLICHST davon ab, die Tasten "Alt" und "Entfernen" gleichzeitig zu drücken.

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Alerus ()

  • Achso ok, danke. Dann werde ich das gelöste Problem mal weg editieren. Bleiben noch zwei Probleme.

    [Zusammengeschoben durch CAS]

    Hm... Das Problem ist immer noch nicht gelöst... Klappt nicht. Die Geister verwandeln sich immer noch nicht nach 160 Steps.

    Ach ja, wegen dem Doppelpost: Das mache ich nur, damit angezeigt wird, dass es in dem Thread nen neuen Beitrag gibt, also dass ja niemand auf die Idee kommt, das zu melden.
    "Hm...? Ob ich die Signatur bin? Nö, ich putz hier nur.
    Die Signatur is' da unten."

    Diskutiere nie mit Idioten, denn sie ziehen dich auf ihr Niveau herunter und schlagen dich dann mit ihrer Erfahrung! :D

    In letzter Zeit vermelden wir ein häufiges Verschwinden von Senioren im World Wide Web. Wir raten sämtlichen älteren Leuten daher DRINGLICHST davon ab, die Tasten "Alt" und "Entfernen" gleichzeitig zu drücken.
  • Mach im "obj_scared" ne Kollisionsabfrage () mit en obj_pacman (oder wie du ihn genannt hast).

    Schreibe in ihr dann herein was passieren soll, wenn der Pacman die "berührt".

    Also -> score erhöhen (fallst du damit arbeitest )
    Dann die Instance zur Startposition ->
    Und das Objekt wieder in ein normalen Monster ändern ->

    Achja.: Verschiedene Objekte sollten immer Verschiedene Namen haben, denn wenn es mehrere Gegner gibt, und alle heißen obj_enemy, kann der GM nur raten welches zu meins.

    Zu den Anderen Problem:
    Ich würde folgende Zeile: for all obj_scared set alarm 0 to 160
    anderes machen, ich würde sie im "obj_scared" Create Event machen, ich habe auch oft genug mit alarms Probleme, wenn sie nicht im Create sind, und weiß nicht warum ?(
    (natürlich dann anstatt for all obj_scared, for self setzten!)

    MFG
    Metalknight
  • Zu 1.)
    Werde ich machen. Danke.


    Zu 2.)
    Habe ich schon gemacht.^^ Klappt aber irgendwie trotzdem nicht.

    [Zusammengeschoben durch CAS]

    Ok, ich habe jetzt bemerkt: Beide Dinge, die du mir vorgeschlagen hast, funktionieren aus irgendeinem Grund nicht. Pacman wird immer an die Startposition zurück gesetzt und verliert ein Leben.

    E:/ Lol, wie dumm ist das denn? Ich bekomme eine Meldung wegen so nem Mist?! Ich habe eine neue Antwort gemacht, damit einem angezeigt wird, dass es in dem Thread was neues gibt, da es so was für die Editier-Funktion ja nicht gibt! Und jetzt habe ich wegen so nem Mist zwei Verwarnungen gekriegt! Ehe man in einem Forum eine Verwarnung wegen nem Doppelpost kriegt, sollte sich der Mod erst mal anschauen, WESHALB man einen Doppelpost gemacht hat... :headtouch: :motz: :shifty:
    "Hm...? Ob ich die Signatur bin? Nö, ich putz hier nur.
    Die Signatur is' da unten."

    Diskutiere nie mit Idioten, denn sie ziehen dich auf ihr Niveau herunter und schlagen dich dann mit ihrer Erfahrung! :D

    In letzter Zeit vermelden wir ein häufiges Verschwinden von Senioren im World Wide Web. Wir raten sämtlichen älteren Leuten daher DRINGLICHST davon ab, die Tasten "Alt" und "Entfernen" gleichzeitig zu drücken.

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

  • Ich habe hier mal grad ein paar Fragen:
    Aber erst mal möchte ich sagen, dass ich vollkommen ausraste, wenn ein Mod meine Beiträge zusammenschiebt, der Doppelpost ist erwünscht, da dann nämlich die Leute wissen, dass es etwas neues in diesem Thread gibt, was es für die Editier-Funktion nicht gibt. Ansonsten verwende ich den Editier-Button natürlich gerne.

    Also, mein Problem ist: Da mir von einigen Leuten geraten wurde, mit D&D aufzuhören, und GML zu verwenden, habe ich dies nun getan und lese mir diese ganze Dokumentation auf der Seite gm-d.de/help/hh_start.htm?407_01_splash.html durch. Ich habe mir bisher alles durch gelesen und bin bisher bis zu den Switch-Statements gekommen. Nun verstehe ich aber einige Statements nicht so ganz, und die wären:
    -Switch-Statement
    -Break-Statement

    Da werden sicher noch einige dazu kommen. Ich hoffe es können mir ein paar Leute gut erklären, wie und wo man diese Statements am besten verwendet, am besten direkt mit einem Beispiel.

    Bereits im Voraus, danke für eure Hilfe.

    E:/ Ach ja, genau: Ich hätte da noch eine Frage. Wo genau liegt der Unterschied zwischen Funktionen, Argumenten, Ausdrücken und Statements? Sorry für die Nubby-Frage. :D
    "Hm...? Ob ich die Signatur bin? Nö, ich putz hier nur.
    Die Signatur is' da unten."

    Diskutiere nie mit Idioten, denn sie ziehen dich auf ihr Niveau herunter und schlagen dich dann mit ihrer Erfahrung! :D

    In letzter Zeit vermelden wir ein häufiges Verschwinden von Senioren im World Wide Web. Wir raten sämtlichen älteren Leuten daher DRINGLICHST davon ab, die Tasten "Alt" und "Entfernen" gleichzeitig zu drücken.
  • Du kannst schreiben:

    GML-Quellcode

    1. if (foo == 1) {
    2. bar = 10;
    3. }
    4. if (foo == 2) {
    5. bar = 23;
    6. }
    7. if (foo == 3) {
    8. bar = 234;
    9. }
    10. // etc...


    Das ist natürlich sehr aufwändig, und darum gibt es switch:

    GML-Quellcode

    1. switch (foo) {
    2. case 1:
    3. bar = 10;
    4. break;
    5. case 2:
    6. bar = 23;
    7. break;
    8. case 3:
    9. bar = 234;
    10. break;
    11. }
    Alles anzeigen


    Ist doch nicht so aufwändig, wie so viele if-Abfragen, oder?

    EDIT:

    Funktionen sind halt Funktionen wie 'draw_text (x, y, text);' o.A.
    Argumente werden meist in Scripts verwendet.
    Ausdrücke sind glaube ich Dinge wie 'c_white', 'true', 'fa_center', 'bm_add', etc... Also, alles was im GML-Editor rot geschrieben ist.
    Und Statements sind sachen wie 'if', 'else', 'while', 'do-until', 'for', etc...
    fabse64 -> haiyyu
  • Ok, danke. Und was bedeutet Bar, und was genau würde dieser Code bedeuten?
    "Hm...? Ob ich die Signatur bin? Nö, ich putz hier nur.
    Die Signatur is' da unten."

    Diskutiere nie mit Idioten, denn sie ziehen dich auf ihr Niveau herunter und schlagen dich dann mit ihrer Erfahrung! :D

    In letzter Zeit vermelden wir ein häufiges Verschwinden von Senioren im World Wide Web. Wir raten sämtlichen älteren Leuten daher DRINGLICHST davon ab, die Tasten "Alt" und "Entfernen" gleichzeitig zu drücken.
  • Ok, gut.
    Ich weis jetzt zwar immer noch nicht, was Ausdrücke und Argumente sind, aber ich denke, das wird sich mit der Zeit schon von alleine ergeben. Jedenfalls will ich in meinem Profil endlich anstatt "D&D Anfänger" "GML-Einsteiger" stehen haben können.^^ Aber welche Vorteile genau hat denn GML eigentlich? Alles was man mit der GML kann, kann man doch auch mit D&D, oder etwa nicht?
    "Hm...? Ob ich die Signatur bin? Nö, ich putz hier nur.
    Die Signatur is' da unten."

    Diskutiere nie mit Idioten, denn sie ziehen dich auf ihr Niveau herunter und schlagen dich dann mit ihrer Erfahrung! :D

    In letzter Zeit vermelden wir ein häufiges Verschwinden von Senioren im World Wide Web. Wir raten sämtlichen älteren Leuten daher DRINGLICHST davon ab, die Tasten "Alt" und "Entfernen" gleichzeitig zu drücken.
  • Nein, es gibt viele Funktionen, die mit Drag and Drop nicht möglich sind, aber mit GML schon.
    Versuch mal eine For-Schleife, eine While-Schleife, ein Switch-Statemend o.A. per Drag and Drop zu machen. ;)
    Ausserdem ist GML viel übersichtlicher.
    fabse64 -> haiyyu
  • Ok, könnte mir mal jemand, auch wenn es viel Arbeit ist, anhand ein paar Beispiele nennen, was mit GML möglich ist, mit D&D aber nicht?
    "Hm...? Ob ich die Signatur bin? Nö, ich putz hier nur.
    Die Signatur is' da unten."

    Diskutiere nie mit Idioten, denn sie ziehen dich auf ihr Niveau herunter und schlagen dich dann mit ihrer Erfahrung! :D

    In letzter Zeit vermelden wir ein häufiges Verschwinden von Senioren im World Wide Web. Wir raten sämtlichen älteren Leuten daher DRINGLICHST davon ab, die Tasten "Alt" und "Entfernen" gleichzeitig zu drücken.
  • Bestes beispiel (für dich aber noch lange nichts): 3D
    Desweiter: wie fabse sagt, for, switch reapet u.ä. Schleifen
    Arrays (soweit ich weiß)
    Gut Struckturieren (kommt auf deine Coding Skills an, sollte man sich schon am Anfang angewöhnen!)
    Fortgeschrittene Draw Funktione (Vertexe, draw_primitives)
    Mit inis und anderen Datein arbeiten (Texte)
    In die Registry schreiben
    Dll's benutzten (weiß ich net genau, müsste aber nur mit GML gehen)
    Splash Screens (bin ich aber auch net genau sicher, aber fast 80% )
    Immer wiederholende Aktionen, in Funktionen (scripte) abkürzen, und mit Argumenten flexible und leicht aufrufen, für verschiedene Zwecke.

    Es gibt sicher noch viel mehr
    MFG
    Metalknight
  • Ah, ok, danke.
    Und was genau sind Arrays?
    "Hm...? Ob ich die Signatur bin? Nö, ich putz hier nur.
    Die Signatur is' da unten."

    Diskutiere nie mit Idioten, denn sie ziehen dich auf ihr Niveau herunter und schlagen dich dann mit ihrer Erfahrung! :D

    In letzter Zeit vermelden wir ein häufiges Verschwinden von Senioren im World Wide Web. Wir raten sämtlichen älteren Leuten daher DRINGLICHST davon ab, die Tasten "Alt" und "Entfernen" gleichzeitig zu drücken.
  • Alerus schrieb:

    Ah, ok, danke.
    Und was genau sind Arrays?
    Das geht eigentlich ehr ins Offtopic hier rüber :para:
    Aber ich erkläre dir es trotzdem.
    Spoiler anzeigen

    Du willst (beste Beispiel finde ich) zum Beispiel ein Tic-Tac-Toe spiel machen. Nun müsstest du für jedes Feld eine eigene Variable / Abfrage machen, ob dieses Feld schon von einen Stein besetzt ist, und von welchen.

    Einfacher jedoch ist es das Feld in eine Array zu Splitten.

    Das Feld könnte (in Programmierer, nicht in echter, Ansicht) so aussehen:

    0,0|0,1|0,2
    --------------
    1,0|1,1|1,2
    --------------
    2,0|2,1|2,2

    Nun, wir können wir einfach, dank Arrays, eine Variable erstellen, zumbeispiel "feld", und dieser mehrere Werte geben. Die einzelnen Werte rufen wir dann durch "indexe" auf.

    feld[1,2] wäre denzufolge das in der mitte rechts. Wenn wir einen Stein setzte vollen, könnten wir einfach folgende Methode benutzten:
    feld[1,2] = 1;


    Naja, wenne mehr wissen willst, lehr erstmal Basics in GML, also die ersten Schritte.

    Edit:
    Fabses ist sogar kleiner, und besser zu Verstehen ;D

    Edit 2:
    Mein 100 Beitrag *freuUndLoopingsMach*
  • Hier ein Beispiel:
    Du willst einen Text von oben nach unten, anstatt von links nach rechts zeichnen lassen.
    Dazu brauchst du Arrays:

    GML-Quellcode

    1. var i, strg, word;
    2. word = "hallo";
    3. for (i = 1; i < string_length (word); i += 1) {
    4. strg [i] = string_char_at (word, i);
    5. draw_text (10, 10 * i, strg [i]);
    6. }

    Ich übernehme keine Garantie, dass es funktioniert.
    Immerhin ist das eine Variable:
    blub = true;
    und das ein Array:
    blub [0] = true;

    ;)

    EDIT: t00 l4t3 >.< ^^
    fabse64 -> haiyyu
  • Ok, danke. Also, dann mal zurück zum Thema. Ich habe noch drei Probleme in meinem momentanen Pacman. Ich werde meinen Pacman jetzt hier zum Download frei geben, ihr schaut mal fleißig woher die folgenden Fehler kommen, und gebt mir eine komplett richtige Version zurück.

    Nein, Scherz. Aber ich fände es nett, wenn zu sämtlichen Problemen erfolgreiche Ansätze/Lösungsvorschläge hier eintreffen würden.

    Also, die verbleibenden Probleme sind: 1.) Nachdem ich einmal den Bonus, der die Geister aufessbar machen soll, geschluckt habe, verwandeln sich die Geister nicht zurück. 2.) Ich kann die Geister aus irgendwelchem unerfindlichen Grund nicht aufessen, nachdem ich den Bonus geschluckt habe. 3.) Ich möchte, dass wenn die Geister sich zurück verwandeln, dass sie dann wieder so aussehen, wie früher, also dass zum Beispiel ein Geist der vor der Verwandlung rot war, auch wieder rot wird, aber ein Geist, der vor der Verwandlung blau war, auch wieder blau wird. 4.) Ich möchte, dass die Geister anfangen, zu blinken, schneller und schneller, bevor sie sich zurück verwandeln.

    Es wäre gut, wenn so schnell wie möglich Antworten auf sämtliche Fragen eintreffen könnten, denn ich habe bereits ein Projekt im Hinterkopf. Sobald mein PacMan dann fertig ist, soll ich einen neuen Thread dafür eröffnen, weil ich möchte dann erst mal Fragen, ob meine Idee mit meinen momentanen Programmierkenntnissen möglich wäre, oder soll ich das in diesen Thread posten, sobald meine Probleme gelöst sind? Naja, hier kommt dann mal mein Pacman, damit ihr die Fehler finden könnt.^^

    [Zusammengeschoben durch CAS]

    Will mir denn auf einmal niemand mehr helfen? ;( ?(
    Dateien
    "Hm...? Ob ich die Signatur bin? Nö, ich putz hier nur.
    Die Signatur is' da unten."

    Diskutiere nie mit Idioten, denn sie ziehen dich auf ihr Niveau herunter und schlagen dich dann mit ihrer Erfahrung! :D

    In letzter Zeit vermelden wir ein häufiges Verschwinden von Senioren im World Wide Web. Wir raten sämtlichen älteren Leuten daher DRINGLICHST davon ab, die Tasten "Alt" und "Entfernen" gleichzeitig zu drücken.
  • Habe mir das mal angeguckt, und muss ehrlich sagen weiß selber nicht so wirklich warum das nicht geht.
    Erschwert ist auch noch das da D&D sachen bei sind, die ich nie als D&D benutzt habe, und anscheinend ein bisschen anderes gehen als in GML.

    Ich kann dir sagen voran dein essens problem scheiter:
    Die Gegner lässt du zwar in "obj_scared" machen, aber irgendwie sind sie sofort alle wieda das grüne gegner Objekt.

    Keine ahnung was da nicht funktioniert, sieht soweit alles richtig aus...

    MFG
    Metalknight
  • Das ist es ja auch, was mich wundert. Eigentlich sieht alles richtig aus, und ich finde partout den Fehler nicht....
    Mann ist das frustrierend -.-
    Naja, dann habe ich wohl keine andere Wahl, als meinen Pacman aufzugeben, denn ich finde den Fehler nicht, und wenn ihn auch sonst niemand findet... ;( :heul:
    "Hm...? Ob ich die Signatur bin? Nö, ich putz hier nur.
    Die Signatur is' da unten."

    Diskutiere nie mit Idioten, denn sie ziehen dich auf ihr Niveau herunter und schlagen dich dann mit ihrer Erfahrung! :D

    In letzter Zeit vermelden wir ein häufiges Verschwinden von Senioren im World Wide Web. Wir raten sämtlichen älteren Leuten daher DRINGLICHST davon ab, die Tasten "Alt" und "Entfernen" gleichzeitig zu drücken.

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