Also folgendes:
Ich bastle eine AI, die Gegener abschiesen soll, und das hier ist die AI, die feststellen soll welche "Instance" am nächsten ist.
Die funktion: instance_nearest(x,y,obj) gibt es ja.
Die Funktions instance_nearest(x,y,obj1,obj2,obj3,obj4) etc..... gibt es ja leider nicht
Ich möchte nämlich die naheste "Insatance" aus vorgegebenen Objekten, und nicht nur ein einziges.
So bevor ihr jetzt meinen nur halb funktionierenden Monsterskript lest, eine Frage:
Gibt es eine Möglichkeit eine solche Funktion zu basteln ?
Hier mein Lösungsvorschlag:
Alles anzeigen
Das Problem ist, dass er die enemies so priorisiert. Ist ein enemy, ein enemy2, und ein enemy3 da, so schiesst er imemr zuerst auf enemy, egal wie weit weg die anderen sind.
Zudem wird der Skript riesengroß, je mehr Gegner ich einbaue....
Also jeman eine Idee wie man
instance_nearest(x,y,obj1,obj2,obj3,obj4) etc
Simulieren kann ?
Ich bastle eine AI, die Gegener abschiesen soll, und das hier ist die AI, die feststellen soll welche "Instance" am nächsten ist.
Die funktion: instance_nearest(x,y,obj) gibt es ja.
Die Funktions instance_nearest(x,y,obj1,obj2,obj3,obj4) etc..... gibt es ja leider nicht
Ich möchte nämlich die naheste "Insatance" aus vorgegebenen Objekten, und nicht nur ein einziges.
So bevor ihr jetzt meinen nur halb funktionierenden Monsterskript lest, eine Frage:
Gibt es eine Möglichkeit eine solche Funktion zu basteln ?
Hier mein Lösungsvorschlag:
GML-Quellcode
- //enemy
- instance_exists(enemy)
- {
- nid1 = instance_nearest(x,y,enemy)
- global.distanceenemy = point_distance(Aiplayer.x,Aiplayer.y,enemy.x,enemy.y)
- }
- //enemy2
- instance_exists(enemy2)
- {
- nid2 = instance_nearest(x,y,enemy2)
- global.distanceenemy2 = point_distance(Aiplayer.x,Aiplayer.y,enemy2.x,enemy2.y)
- }
- //enemy3
- instance_exists(enemy3)
- {
- nid3 = instance_nearest(x,y,enemy3)
- global.distanceenemy2 = point_distance(Aiplayer.x,Aiplayer.y,enemy3.x,enemy3.y)
- }
- if global.distanceenemy < global.distanceenemy2 {if global.distanceenemy < global.distanceenemy3
- {nid = nid1}}
- else
- if global.distanceenemy2 < global.distanceenemy { if global.distanceenemy2 < global.distanceenemy3
- {nid = nid2}}
- else
- if global.distanceenemy3 < global.distanceenemy2 { if global.distanceenemy3 < global.distanceenemy
- {nid = nid3}}
- nid.alarm[0] = 1
Das Problem ist, dass er die enemies so priorisiert. Ist ein enemy, ein enemy2, und ein enemy3 da, so schiesst er imemr zuerst auf enemy, egal wie weit weg die anderen sind.
Zudem wird der Skript riesengroß, je mehr Gegner ich einbaue....
Also jeman eine Idee wie man
instance_nearest(x,y,obj1,obj2,obj3,obj4) etc
Simulieren kann ?
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von t3mp3st ()