Ein Problem mit einer Abfrage

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

  • Ein Problem mit einer Abfrage

    Hi.
    Also mal mein Problem:
    Ich mache grade so ein Spiel (weiß nicht wie man die art nennt!) wo der Held nach der Maus guckt und man das alles von oben sieht.
    mein Problem ist das ich eine Abfrage machen will ob der Held in einen
    bestimmten bereich ist, damit der Geschütz Turm schießt.
    Unswa ist auf den Turm ein Gewehr und wenn der Held in der reichweite ist (zumbeispiel -200 x davon weg oder näher) der Turm schieß.
    Ich habe fiel überlegt und fiel ausprobiert aber nichts hat geklappt.

    Hier mal was ich als letztes Probiert habe das aber auch net geklappt hat:

    Quellcode

    1. Step Event:
    2. execute code:
    3. {
    4. image_angle=point_direction(x,y,object_player.x,object_player.y);
    5. }
    6. if at position (object_player.x >self.x-200 || object_player.x < self.x+200,object_player.y >self.y-200 || object_player.y < self.y+200) there is object object_player
    7. set Alarm 0 to 0


    (Die abfrage ist D&D !Nur wo das Gewehr hinguckt ist GML!!!)
  • erstens^^ alarm[0]=1
    man darf einen alarm nicht auf 0 setzen^^
    sonst funktioniert es nicht

    und dann kannst du das mit der entfernung so machen

    GML-Quellcode

    1. if point_distance(x,y,spieler.x,spieler.y)<200
    2. {
    3. //schuss script
    4. }
    Die Schönheit liegt im Auge des Betrachters :D
  • hab das so geändert wie du es gesagt hast (habe alarm gleich ganz rausgenommen uzm zu sehen ob es auch geht, weil dann schießt es ja nur die ganze zeit ;) )
    aber es geht net, es ist so wie bei meinen, man müss ÜBER das Gewehr laufen damit es schießt, und das soll ja nachher nicht mehr möglich sein....
    THX für deine Hilfe aber auch bei deinen skript muss man über das object laufen(kenn das problem selber nicht warum das nur schießt wenn man drüber läuft, sonst würde ichs ja genauer beschreiben....)
  • ich vermute das diese ding dafür verantwortlich ist:
    if at position (object_player.x >self.x-200 || object_player.x < self.x+200,object_player.y >self.y-200 || object_player.y < self.y+200) there is object object_player
    irgentwas kan damit nicht stimmen, ist auch viel zu kompliziert. es geht viel einfacher:

    GML-Quellcode

    1. if (point_distance(x,y,spieler.x,spieler.y)<200) && (shoot=true) {
    2. bullet = instance_create(x,y,obj_bullet);
    3. bullet.direction = direction;
    4. bullet.speed = 5;
    5. alarm[0] = 10;
    6. shoot = false;
    7. }
    dan im alarm[0] event:
    shoot = true;

    und natürlich shoot im createvent auf true setzen.

    edit: ich sollte sich vieleicht auf einen variablennamen einigen^^
    :) Nobody is perfect (-:

    "Dummköpfe sind Denkerköpfen weit überlegen. Zahlenmäßig." Ernst Ferstl
  • Oh sry.....habe grade nochmal wegen dir (Nobody) geguckt und wollte das ändern, da sah ich den code von andyworld,
    und dann ist mir eingefallen wieso mache ich meine alte abfrage nicht weg???
    das war mein fehler also geht andyworlds doch^^
    THX für die hilfe (andyworld - nobody) , war letztens ende nur mein fehler eine doppelte abfrage erst meine komische und dann noich eine

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

  • Benutzer online 1

    1 Besucher