Instance Id Problem

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

  • Instance Id Problem

    hallo

    ich habe mich mit instance id aüseinander gesetzt ...also ich habe mehrere instanzen eines objektes in einen raüm gesetzt insgesamt 7
    ünd in dem objekt hab ich diesen code im step event

    GML-Quellcode

    1. if keyboard_check_pressed(vk_right)
    2. { randomize();
    3. with (instance_id[irandom(6)])
    4. {
    5. hspeed+=6;
    6. }
    7. } else
    8. {
    9. hspeed = 0;
    10. }
    Alles anzeigen



    ünd er fünktioniert aüch wünderbar....aber dann hab ich ein anderes objekt in den raüm hinzügefügt ünd plötzlich bewegt sich das aüch mit....wieso.....(in dem anderen objekt ist kein code ünd der code von oben spricht dieses objekt garnicht an....)

    was mach ich falsch


    ünd noch was:::: wie weiß man welche instanz welche id hat....also wie gesagt hab ich jetzt 7 instanzen eines objektes im raüm wie weiß ich welcher welche id hat....(aüsser dürch den room editor);
  • Ich bin mir nicht 100% sicher, aber ich glaube du kannst dir nie sicher sein welche instanz welche Id bekommt bzw dass diese der Reihe nach wie du sie platziert hast in instance_id[] eingespeichert werden.
    Um ganz sicher zu sein kannst du ein eigenes arr erstell in dem du die id eines neu erstellten objects einträgst.

    GML-Quellcode

    1. count = 0;
    2. arr[count] = noone;
    3. if mouse_check()
    4. {
    5. arr[count] = instance_create();
    6. count += 1;
    7. }
    8. if keyboard_check()
    9. {
    10. with(arr[irandom(count))
    11. {
    12. hspeed += 6;
    13. }
    14. }
    Alles anzeigen



    das was bei dir aber im code nicht stimmt ist das else hspeed = 0;
    denn das bezieht sich nicht automatisch auf alle anderen objects.

    was du brauchst ist soetwas:

    GML-Quellcode

    1. var rand = irandom(count)
    2. for(i = 0; i < count ; i += 1)
    3. {
    4. with(arr[i])
    5. {
    6. if other.rand == other.i //hier brauchst du other weil du durch das with den code im anderen object ausführst. mit other kommst du wieder zurück zum object das den loop ausführt
    7. {
    8. hspeed += 6;
    9. }
    10. else
    11. {
    12. hspeed = 0;
    13. }
    14. }
    15. }
    Alles anzeigen

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)
  • danke dir echt toll...

    ich hab grad dasselbe nochmal gemacht mit den mehreren instanzen im room ünd dann denselben code wie ganz oben nür ohne irandom ünd randomize....
    da konnte ich die instanzen direkt über 1, 2, 3 ,4, 5 ,6 ansprechen... ünd die reihenfolge war aüch so wie ich sie im room eingefügt habe...

    aber sobald ich wieder ein anderes objekt im room hatte bewegte sich das aüch obwohl es das nicht sollte da ich ja direkt die instanz mit instanz id angesprochen habe.


    noch ein problem:
    ich hab ja bei pong einen time mode wo man pünkte sammeln kann aüf zwei arten entweder dürch tore oder dürch treffen von kleinen stangen im raüm...

    jetzt hab ich ein problem mit diesem code hier:

    GML-Quellcode

    1. if (global.mode == timeplay)
    2. {
    3. if (global.playerpunkte ++)
    4. {
    5. global.points += 1000;
    6. }
    7. }


    er zählt es zwar hinzü aber erst wenn ich 2 tore hintereinander schieße.....ünd schreibe ich global.playerpünkte +=1 geht es nicht...wie kann ich das lösen...
    sorry komm grad nicht draüf war die ganze nacht wach...lg

    EDIT: ja ich könnte mehrere if abfragen in der art machen global.playerpünkte > 0 && < 1

    oder einen switch...was ich denke am besten wäre...oder?? noch besser mit nen repeat

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von acidrain833 ()