Instance Nearest mit mehreren Objekten und gravity problem

  • GM 7

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

  • Instance Nearest mit mehreren Objekten und gravity problem

    Ich habe hier 3 Fragen:

    1. Kann ich Instance_nearest so verwenden, sodass es mir von 3 unterschiedlichen Objekten das näheste zeigt? Sprich: Obj_a,obj_b,obj_c ind im Room, was ist das näheste?

    2:
    Das Problem ist relativ kompliziert. Ich habe eine Waffe am Boden rumliegen, die ich aufheben kann. (wenn ich die Variable Weapon[0] auf 1 stelle) Jedoch gibt es nach dem Aufheben ein Problem:
    Die Waffe fängt immer an sich ein wenig "hinauf" zu drehen. Dannach springt sie auf die ausgangsposition (richtung maus) zurück... und dreht sich wieder. Dies kann man nur leicht erkennen. Bisher habe ich volgendes herausgefunden:

    -Anscheinend wird die Speed und vspeed (je nach Winkel- Waffe zu Maus) der Waffe andauernd hochgetrieben und wieder au 0 gesetzt. (was synchron zu der Waffendrehung passt).

    - Außerdem ist mir auch aufgefalle ndas es mit dem "Gravity/schwerkraft" Script weiter unten zusammenhängt. Habe ich ihn aus dem Game genommen, funtzte alles normal.

    Woran liegt das?

    Spoiler anzeigen

    GML-Quellcode

    1. if (obj_controller.weapon[0] = id){
    2. image_angle = point_direction(x,y,mouse_x,mouse_y);
    3. x=obj_player.x;
    4. y=obj_player.y-4;
    5. }

    GML-Quellcode

    1. if (obj_controller.weapon[0] = id){
    2. ...
    3. }else{
    4. if(place_free(x,y+1)) {
    5. gravity=0.25;
    6. }else{
    7. gravity=0;
    8. }
    9. if(vspeed > 6) vspeed=6;
    10. }
    Alles anzeigen



    3. Bei einem Objekt ( dem Player) kann ich im Debug mode erkennen das die Anzahl an Subimages andauernd in die höhe Schiesst. Ist dies normal? Wirkt sich das mit der Zeit auf die rechenleistung aus?
  • zu 1)

    - Du erstellst ein Objekt "obj_nearestparent" ohne irgendetwas
    - Die Objekte die überprüft werden sollen bekommen als parent "obj_nearestparent" zugewiesen
    - Du überprüfst mit instance_nearest das Objekt "obj_nearestparent"

    Nun werden alle 3 Objekte gecheckt.
  • 1:

    GML-Quellcode

    1. var dis_1,dis_2,_dis_3,max_;
    2. dis_1=point_distance(argument0,argument1,argument2.x,argument2.y)
    3. dis_2=point_distance(argument0,argument1,argument3.x,argument3.y)
    4. dis_3=point_distance(argument0,argument1,argument4.x,argument4.y)
    5. max_=max(dis_1,dis_2,dis_3)
    6. if (max==dis_1)
    7. {
    8. return argument2;
    9. }
    10. if (max==dis_2)
    11. {
    12. return argument3;
    13. }
    14. if (max==dis_3)
    15. {
    16. return argument4;
    17. }
    18. return 0;
    Alles anzeigen
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%