Zombies die ein angreifen

  • GM 8

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

  • Zombies die ein angreifen

    Hey Leute,
    ich fange gerade mit Gamemaker an und finde das Programm Klasse doch ich stehe grade vor einem Problem.Ich fange grade mit einem simplen Top down shooter an und habe bis jetzt ein Figur die sich bewegen sowie schießen kann und ich habe dank eines Tuts jetzt Licht und Dunkelheit :D.
    Nun möchte ich das am Anfang alle 6 Sekunden 4 Zombies an den Rändern der Map spawnen.
    Dann sollte es immer schneller werden z.b nachdem 3 mal Zombies gespawnt sind nach jeweils 6 Sekunden sollte dann die Cooldown zeit fürs spawnen runter gehen auf 5 Sekunden und das immer so weiter bis auf 2 Sekunden.Nur hab ich keine Ahnung wie ich das mache.
    Ich hoffe ich bekomme eine Antwort mit einer Lösung schonmal Danke im vorraus :)


    So ich hätte noch eine 2te Frage.Ich habe schon ein bissl das Forum durchstöbert und mir schon die einen oder anderen Tuts angesehen und ich finde es immer Krass was dort für Scripts zsm kommen,schreibt ihr die eig selber?Weil ich möchte auch gerne sowas lernen zu scripten damit ich dann meine Probleme selber lösen kann und ich dann der bin,der den anderen hilft haha.:DAlso wo kann ich sowas ambesten lernen und ich weiß das es viel Zeit kostet ^^
  • Zu deiner ersten Frage: Ich weiß nicht genau, wie man das löst, aber ich glaube das kann man mit Alarms lösen. Kenne mich aber damit garnicht aus und glaube, das man es aber so machen kann. Schau mal in der Hilfe.

    Zu deiner zweiten Frage: Du kannst aus der Hilfe lernen und auch Tutorials herunterladen. Hier mal ein paar Links:
    Hilfe (wie schon verlinkt)
    Tutorialarchiv (gm-d.de)
    Englisches Forum
    Einfach mal sich damit befassen und ein bisschen lernen :)

    DigitalClark
  • Zu deiner ersten Frage:

    Du erstellst dir am Besten erst mal ein Controller-Objekt (also ein ganz normales Objekt) und nennst es zombie_control oder so. Im :event_create: Create-Event des Objekts erstellst du dir eine Variable counter (oder nenn sie wie du willst) und eine Variable time für die Wartezeit. Dann erstellst du dir ein :event_timer: Alarm-Event (nehmen wir mal alarm[0]) und dort kommt dann dein Zombie-Spawn-Code rein.

    Also im :event_create: Create-Event:

    GML-Quellcode

    1. counter = 0;//Unser Zähler
    2. time = 6;//Unsere Cooldownzeit
    3. alarm[0] = room_speed*time;//nach 6 Sekunden springen wir ins alarm[0]-Event


    :event_timer: Alarm-Event[0]:

    GML-Quellcode

    1. var i;//i ist eine temporäre Variable
    2. for(i = 0; i < 4; i+=1){//Die folgende Zeile wird 4-mal ausgeführt (googel nach "for-Schleife", wenn du das nicht verstehst)
    3. instance_create(iwoAmRand,iwoAmRand,zombie);//Erstellen eines Zombies (das mit dem "i'wo am Rand" will ich jetzt nicht lösen :P)
    4. }
    5. counter += 1;//Zähler wird um 1 erhöht
    6. if(counter mod 3 == 0){//Falls der Zähler 3 ist
    7. counter = 0;//wird unser Zähler zurückgesetzt
    8. time = max(time-1,2);//und die Zeit wird um 1 verringert, wird aber nie kleiner als 2
    9. }
    10. alarm[0] = room_speed*time;//Und dann gehen wir nochmal in das Alarm-Event[0]


    Hab's jetzt nicht getestet, sollte aber funktionieren.

    Zu deiner zweiten Frage:

    Eigene Scripte (Funktionen) schreiben kannst du auch mit minimalen Programmier- bzw. GML-Kenntnissen. Du musst nur logisch denken können, dann gehts eigentlich ziemlich einfach. Nur man muss sich mit Logik und Algorithmen schon eine Weile beschäftigt haben, bis man ein krasses Script raushaut. Du solltest dir nur merken: Wenn du ein Script erstellst, dann achte darauf, dass der Code nicht über die Höhe deines Bildschirms ragt. Dadurch entstehen meistens sehr viele Fehler und das Debuggen dauert dann auch länger. Wenn also ein Script zu lang ist, dann teil es in mehrere auf. Das macht das Lesen des Codes angenehmer, eventuelle Fehler lassen sich schneller beseitigen und du verhinderst Codedupplizierung. Jedes Skript sollte immer genau für eine Aufgabe verantwortlich sein und nicht für mehrere. Das gilt jetzt nicht nur für die Programmierung mit dem GM, sondern auch für die Programierung im Allgemeinen.

    Am Besten lernst du sowas durch eigenes Rumprobieren. Wie viel Zeit man für sowas braucht hängt ganz vom Menschen und seiner Vorbildung ab.

    Hoffe das hilft dir weiter.

    MfG Trixt0r ;)

    Albert Einstein schrieb:

    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
  • Hi,

    es gibt sicher mehrere Wege das zu lösen, aber an sich würde ich global, die schon gespawnten Zombies durchzählen um dadurch den alarm beeinflussen zu können.
    Bsp.:

    GML-Quellcode

    1. if global.sp_zombies > 100
    2. {
    3. counter = 20 //... usw
    4. }


    man braucht dann noch den alarm
    z.b. Create Event

    GML-Quellcode

    1. global.sp_zombies = 0
    2. //Strawberry Generator
    3. counter = 30
    4. alarm[0] = counter


    z.b. Step event

    GML-Quellcode

    1. if instance_number(obj_strawberry)< 30
    2. {
    3. instance_create(x,y,obj_strawberry);
    4. //das ganze 4x für die Ränder des Raumes
    5. //x und y müssen die Raumgrenze definieren
    6. global.sp_zombies += 1//addiere 1 zombie dazu
    7. alarm[0] = counter//resette den alarm
    8. }


    so das ganze noch zusammenbasteln und schon funzt das ;)

    Greetz
    Es gibt viel zu tun, packen wir´s an !!!
    Für Rechtschreibfehler sind die verantwortlich, die sie entdecken :P.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Black-Mask ()

  • Benutzer online 1

    1 Besucher