huhu,
ich hätte da mal nen problemchen. ich bastel ab und an anner art tower defence game. nun habe ich eine gun welche später 3 feuermodi besitzen soll. den ersten mit instance_nearest hab ich hinbekommen. ich möchte aber noch einen der den creep mit den wenigsten und einen mit den meisten hp angreifen soll. jetzt hat die waffe eine range. und so recht weiß ich atm net wie ich das machen soll daß nur in der range die creeps gecheckt werden wer die meiste oder wenigste hp hat.
hier ma mein momentanes script:
create:
step:
Alles anzeigen
das nächste prob ist daß die range iwie net richtig stimmt, wenn ich mit maus über meine gun fahre zeigt es einen kreis welcher der range entsprechen soll:
draw:
Alles anzeigen
aba warum auch immer ist die linie die erstmal die länge des schuß darstellt immer länger als der kreis der die max range angibt. also die überschneiden sich.
hab ma meinen momentanen stand angehangen.
hoffe man kann mir helfen.
ich hätte da mal nen problemchen. ich bastel ab und an anner art tower defence game. nun habe ich eine gun welche später 3 feuermodi besitzen soll. den ersten mit instance_nearest hab ich hinbekommen. ich möchte aber noch einen der den creep mit den wenigsten und einen mit den meisten hp angreifen soll. jetzt hat die waffe eine range. und so recht weiß ich atm net wie ich das machen soll daß nur in der range die creeps gecheckt werden wer die meiste oder wenigste hp hat.
hier ma mein momentanes script:
create:
GML-Quellcode
- range = 100 // reichweite des turret - levelbar
- gunmode = 0 // welchen KI-modus verwendet die gun - vorerst nur instance_nearest (0)
- damage = 2 // schaden per schuss - levelbar
- frequenzmax = 10 //maximale schussfrequenz
- frequenz = frequenzmax // schussfrequenz
- drawrange = false // zeichnet einen kreis in grgrösse der range wenn maus drüber fährt
- active = false // ist waffe aktiv
step:
GML-Quellcode
- //erster feuermodus - turret sucht nächstes ziel und schaltet ausser range oder wenn zerstört um
- if gunmode = 0 && instance_exists(obj_creep_follow_p1) {
- if active = false && distance_to_object(obj_creep_follow_p1) <= range {i = instance_nearest(x,y,obj_creep_follow_p1) active = true}
- if active = true{
- ii = point_distance(x,y,i.x,i.y)
- image_angle = ii
- frequenz -=1 //zählt runter bis schuss generiert wird
- if frequenz = 0 { i.leben -=damage frequenz = frequenzmax} // hier wird schaden pro schuss generiert
- if i.leben <=0 {active = false}
- if distance_to_object(i) >= range {active = false}
- }
- }
das nächste prob ist daß die range iwie net richtig stimmt, wenn ich mit maus über meine gun fahre zeigt es einen kreis welcher der range entsprechen soll:
draw:
GML-Quellcode
- if gunmode = 0 && active = true{
- //i = instance_nearest(x,y,obj_creep_follow_p1)
- p = point_direction (x,y,i.x,i.y)
- if distance_to_object(i) <= range {
- //draw_sprite_ext(spr_turret_mgun,0,x,y,1,1,p,c_white,1) // turret
- draw_line_width_color(x,y,i.x,i.y,2,c_white,c_green)
- } // schussrichtung
- else{
- //draw_sprite_ext(spr_turret_mgun,0,x,y,1,1,direction,c_white,1)
- }}
- if drawrange = true {draw_circle_color(x,y,range,c_white,c_red,1)}
aba warum auch immer ist die linie die erstmal die länge des schuß darstellt immer länger als der kreis der die max range angibt. also die überschneiden sich.
hab ma meinen momentanen stand angehangen.
hoffe man kann mir helfen.