Tower Defence Game(Hilfe, beim verkaufen von türmen)

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

  • Tower Defence Game(Hilfe, beim verkaufen von türmen)

    Hey,
    ich habe mal wieder ein Problem und zwar beim verkaufen von türmen. Ich habe ja 4 Türme und in jedem create event habe ich das geschrieben:

    GML-Quellcode

    1. ​event_inherited()
    2. range = 80;
    3. shootPower = 15;
    4. speedShoot = 15;
    5. price = 10;

    aber das wisst ihr ja wahrscheinlich wegen dem anderen Problem was ich hatte. Nun habe ich ein Object (obj_sellButton) erstellt, und es erstmal unsichtbar gemacht . Anschließend habe ich ein Object (obj_tower) gemacht und bei den 4 Türmen habe ich bei "parent" obj_tower eingesetzt. Anschließend habe ich beim obj_tower dann das geschrieben:

    Mouse Left Pressed Event:

    GML-Quellcode

    1. ​obj_sellButton.visible = true

    Step Event:

    GML-Quellcode

    1. ​if (mouse_check_button_pressed(mb_left)) && (place_meeting(mouse_x,mouse_y,obj_sellButton))
    2. {
    3. instance_destroy()
    4. global.money += price
    5. }

    So das Problem ist jetzt, dass wenn ich den sell button drücke das alle Türme zertört werden, wegen dem Code im step event.
    Also habe ich den Code im step event bei den türmen rein gemacht. Jetzt werden nicht mehr alle Türme zerstört sondern z.B. nur das Object (obj_tower1) aber wenn ich jetzt mehrere von obj_tower1 im Raum setze und auf sell drücke dann werden alle obj_tower1 zerstört die im Raum sind. Ach und meine Türme schießen nicht mehr wenn ich den Code im step event bei den türmen rein mache.

    Ich möchte es gern so haben, dass wenn ich ein Object anklicke und auf sell drücke das nur das Object zerstört wird was ich angeklickt habe.
    Ich hoffe ihr könnt mir dabei helfen.
  • Dr_Devil_Gamer schrieb:

    Sorry bin noch Neuling


    Achso, kein Problem :)

    Du brauchst im Create Event eine Variable zusätzlich: selected = false

    GML-Quellcode

    1. obj_sellButton.visible = true
    2. selected = !selected; //das macht aus true false und aus false true


    GML-Quellcode

    1. if (mouse_check_button_pressed(mb_left)) && (place_meeting(mouse_x,mouse_y,obj_sellButton) && selected == true)
    2. {
    3. instance_destroy()
    4. global.money += price
    5. }
    6. so werden nur alle vorher angeklickten Türme selected, die könntest du dann auch als selektiert anzeigen lassen und kannst 1 - alle Türme verkaufen. Mit der selben Variable kannst du dann natürlich auich andere Dinge anstellen, je nachdem was man da ncoh machen soll, zB upgraden, damit man nicht jeden Turm einzeln upgraden muss.

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)
  • Die selected variable ist nicht zwingend nötig. Dein Problem ist, dass du im step evenr auf obj_sellButton abfragst. Somit wird der code für alle tower des gleichen Typ ausgeführt, da du somit die Bedingung immer erfüllst wenn die maus irgendeinen sellButton berührt.
    Lösen kannst du das, indem du auf die entsprechende Instanz des sellButtons abfragst. Falls nötig kann ich dir ein Beispiel erstellen, aber bin momentan am Handy
  • Danke Aku_Ryou es hat geklappt! :thumbsup:

    ich glaub aber nicht, dass dies meine letzte frage ist zu meinen tower defence game. Es wäre cool wenn du oder HIM666 mir dann bei meiner evt nächsten frage auch wieder helfen würdest. Danke nochmal :D

    Ach hätte ich fast vergessen, du hattest ja gesagt das ich es dann anzeigen lassen kann wenn es selected ist. Das habe ich gemacht aber was muss ich machen damit es unselected ist. Halt ich möchte das so machen, dass wenn ich wieder wo anders drauf klicke das es dann unselected ist und dann mein sell button wieder unsichtbar ist.

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