wie kann man ein radius einbauen?

  • GM 8
  • wie kann man ein radius einbauen?

    Hallo, ich habe schon auf der einen Hilfe seite geschaut und finde nichts zum radius...
    denn, ich versuche einen unsichtbaren Radius (von ca. 200 Pixeln) um ein objekt zu machen..(sozusagen um den gegner...)
    und wenn der Spieler in diesen radius geht, soll der spieler auf ihn schiessen(das schiessen weiß ich schon wie es geht)
    deswegen nur kurz und knapp: Wie macht man einen Radius(um ein bestimmtes Objekt), der durch den Spieler ausgelöst wird..
    Aktuelle Projekte:

    • PacTobs 1(comming soon...) :gmlove:
    • PacTobs 2
    • ??? Quiz
    • Panzer-Spiel
    • Mario IN:The War of the Mushroom Kingdom!!
    • Ein Koopa-Spiel
    • Platform Spiel.

  • Aus der Hilfe:
    collision_circle(xc,yc,radius,obj,prec,notme)
    Diese Funktion prüft, ob eine Kollision zwischen dem (gefüllten) Kreis mit Kreismittelpunkt an Position (xc,yc) mit gegebenem Radius und Instanzen des Objektes obj vorliegt. Beispielsweise kannst du damit überprüfen, ob ein Objekt dicht an einer bestimmten Stelle liegt.

    Mit einer If abfrage:

    GML-Quellcode

    1. if(collision_circle(x,y,200,obj,true,true))
    2. {
    3. //Was passiert wenn. In diesem Fall schießen.
    4. }

  • distance_to_objekt(das objekt)<200
    oder
    distance_to_point(instance_nearest(x,y,objekt).x,instance_nearest(x,y,objekt).y)<200

    oder so wie oben was glaub ich besser wäre.
    Meine Signatur hat kein Visum für das GM Forum erhalten.
  • Benutze doch einen distance abfrage in step-event

    GML-Quellcode

    1. if (distance_to_object(obj_player)<200) //ist entfernung kleiner als 200pixel
    2. {
    3. //code zum "schießen"
    4. }




    Das schießen geht gut mit alarmen und variablen:
    Im create event

    GML-Quellcode

    1. var can_shot,shoot_speed,
    2. can_shot = 1
    3. shoot_speed= 3//sekunden


    Im step-event

    GML-Quellcode

    1. if (distance_to_object(obj_player)<200) And can_shoot = 1//ist entfernung kleiner als 200pixel
    2. {
    3. instance_create(x,y,obj_bullet);
    4. can_shoot = 0;
    5. alarm[0] = room_speed * shoot_speed//automatische umrechnung in sekunden
    6. }



    Und noch in alarm nr 0

    GML-Quellcode

    1. Can_shoot = 1


    Sollte so funktionieren, bin nur gerade unterwegs um mir zu 100% sicher zu sein
  • ja, danke :D , ich mache das einfach so:

    if (distance_to_object(obj_player)<200)
    {
    alarm[0]=50
    }
    (und dann einfach das alarm[0] event... mit dem zeug danach u.s.w.)


    :D danke
    Aktuelle Projekte:

    • PacTobs 1(comming soon...) :gmlove:
    • PacTobs 2
    • ??? Quiz
    • Panzer-Spiel
    • Mario IN:The War of the Mushroom Kingdom!!
    • Ein Koopa-Spiel
    • Platform Spiel.

  • Benutzer online 1

    1 Besucher