Ich brauche Hilfe

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

  • Ich brauche Hilfe

    Guten Tag ihr lieben.

    Ich habe mal eine Frage an ein paar erfahrene unter euch.
    Und Zwar habe ich 2 Probleme die sich aber leicht erklären lassen.
    Da ich mich aber mit code schreiben nicht so auskenne und versuche alles über die normalen Funktionen zu bauen komme ich halt schnell an meine Grenzen.

    Also nun zu meinen Problemen.

    Problem 1:
    Ich habe einen NPC der durch verschiedene Gänge läuft und ab und zu auf eine Wand trifft (so weit alles gut) nur soll er wenn er mit der Wand kolidiert dort anhalten ......für 5sekunden dort pausieren und dann wieder die
    Bewegung aufnehmen.
    Was ich bis jetzt geschaft habe ist das er auf die Wand trifft und anhällt mit einem Time event doch dann garnichts mehr macht .....oder auf die wand trifft und einfach sofort weiter läuft.
    Also problem ich bekomme diese 5sekunden pause (nur für den NPc nicht für das ganze Game) nicht hin.


    Problem 2:
    Wenn er auf diese Wand trifft hat er nur zwei Möglichkeiten....entweder rechts oder links......aber das problem ich weiß nicht wie man dieses entweder oder programiert......also das er sich den weg random aussucht.
    Ich kann mit meinen Fähigkeiten nur entweder rechts oder links schreiben ....mehr ist bei mir nicht drinn.

    Sry aber benutze den GM errst seit 5 Tagen....und das meiste bekomme ich hin auch ein paar sehr leichte codes aber das übersteigt zur Zeit mein Horizont.
    Hoffe das mir jemand Helfen kann.

    Mfg Choco :)
  • Hallo Choco und willkommen in der Community :)

    Zu Problem 1:
    Du musst mit der Funktion place_free() ( docs.yoyogames.com/source/dadi…ollisions/place_free.html ) prüfen ob der Platz frei ist, wo der npc hinläuft.
    Wenn der NPC auf eine Wand stößt, ist der tritt der fall ein, das der Platz vor ihm nicht mehr frei ist. Beispiel (NPC hat eine größe von 32x32):

    Step Event:

    GML-Quellcode

    1. if !place_free(x,y+32) //NPC prüft ob Platz unter sich NICHT frei ist (Auf eine Mauer Stößt)
    2. {
    3. (Code für NPC anhalten)
    4. alarm[0] = room_speed*5 //Alarm 0 auf 5 Sekunden stellen
    5. }


    Was gleichzeitig in Problem 2 übergeht. Dein NPC hat nun geprüft, ob der Platz unterhalb von ihm nicht frei ist. Wenn der Fall eintritt, aktiviert er den Alarm 0.

    Alarm 0 Event:

    GML-Quellcode

    1. RandomRichtung = irandom_range(1,2) //NPC sucht sich eine zufällige richtung aus zw 1 und 2 aus (Rechts oder Links)
    2. if RandomRichtung = 1 //Hat zufällig Richtung 1 gewählt
    3. {
    4. Richtung = 1
    5. }
    6. if RandomRichtung = 2 //Hat zufällig Richtung 2 gewählt
    7. {
    8. Richtung = 2
    9. }
    Alles anzeigen


    Somit hast du erreicht, das dein NPC sobald er auf eine Mauer stößt sich zufällig nach 5 Sekunden eine andere Richtung (Links oder Rechts) aussucht.
    Nun weiss ich nur deinen Code nicht, der den NPC bewegt. Dazu müsstest du zb im Create Event:

    GML-Quellcode

    1. Richtung = 1 // NPC läuft in Richtung 1 los


    Step Event

    GML-Quellcode

    1. if Richtung = 1
    2. {
    3. (Code für nach zb Rechts laufen)
    4. }
    5. if Richtung = 2
    6. {
    7. (Code für nach zb Links laufen)
    8. }
    9. if Richtung = 3
    10. {
    11. (Code für nach zb Oben laufen)
    12. }
    13. if Richtung = 4
    14. {
    15. (Code für nach zb Unten laufen)
    16. }
    Alles anzeigen


    Ich hoffe konnte etwas helfen. Gibt sicher noch andere möglichkeiten. Aber diese ist mir auf die schnelle eingefallen. :)

    Viel Erfolg und Spaß mit Game Maker.
  • Danke danke auf jedenfall....
    ich benutze kein code wie ich sagte....

    Aber damit man es sich besser vorstellen kann hier ein Bild:


    Ich habe nämlich keinen code geschrieben ich habe einfach gesagt : Wenn NPC auf Stein Triff nach links oder nach unten......also geben sogesagt die steine die Laufrichtung an.
    Nur bei den Kisten soll er immer stoppen (5sek warten) und dann links oder rechts......also wie gesagt ich habe keinen Code für das ganze Spiel benutz außer einen für mein char der kann schießen aber sonst ist kein Code vorhanden deswegen fragte ich ja ob ihr mir einen Code schreiben könnt für diese 2 Probleme das ich dann einfach copy paste machen kann^^

    Aber danke für die schnelle Hilfe...ich werd es gleich nochmal versuchen....falls ihr euch jetzt mit dem bild mehr vorstellen könnt und euch was gutes einfällt schreibt es einfach

    Mfg Choco
  • @Atomicmaster
    Wenn der NPC vor einer Wand ist läuft der timer nicht mehr ab, weil er ständig neu gestartet wird. Wahrscheinlich nur ein kleiner Fehler von dir. Da kann man ja einfach
    if alarm[0] < 0
    davor machen.
    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