Werte Übergeben

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

  • Werte Übergeben

    hy

    also ich hab wiedermal ein problem ich wollte werte übergeben also hier mal ein kleines stück code

    obj_player
    step event

    GML-Quellcode

    1. if keyboard_check(vk_enter)
    2. {
    3. schuss = instance_create(room_width/2,room_height/2,obj_kugel);
    4. schuss.dir = 0;
    5. schuss.speed = 10;
    6. schuss_text = "Deine Kugel";
    7. }



    obj_bullet
    create event

    GML-Quellcode

    1. direction = obj_player.dir;
    2. speed = obj_player.speed;
    3. txt = obj_player.text



    aber es funktioniert nicht er sagt immer einen error was mach ich falsch???

    Quellcode

    1. ​Variable obj_player.<unknown variable>(100092, -2147483648) not set before reading it.
    2. at gml_Object_obj_bullet_CreateEvent_1 (line 2) - txt = obj_player.text;




    ich habs auch schon so geschrieben:


    GML-Quellcode

    1. direction = obj_player.schuss.dir;

    aber das ist ja noch schlimmer


    wäre toll wenn mir da jemand helfen könnte
  • Erstens meint der Error:

    Quellcode

    1. gml_Object_obj_bullet_CreateEvent_1 (line 2) - txt = obj_player.text;

    also die variable obj_player.text.
    Diese Variable seh ich in deinem code nicht, du gibst ja aber auch dem schuss object schon eine text variable mit. Warum willst du dann obj_palyer.text benutzen?

    Das ist zweitens: Du erstellst das Schussobject und gibst ein paar variablen mit. Dadurch braucht der Schuss kein Create event für diese variablem mehr.

    GML-Quellcode

    1. //neu ist die referenz um das object später in diesem step auch noch bearbeiten zu können
    2. neu = instance_create //< jetzt hat neu den wert der instance id von diesem erstellten schussobject
    3. //jetzt wollen wir ein paar variablen erstellen die nicht immer gleich im create event vom schuss stehen könenn/sollen
    4. neu.direction = obj_player.direction;
    5. neu.text = "object number " + string(counter);
    6. counter += 1;


    und im neuem object brauchen wir entweder gar kein create event, oder weil du zB einen fixen speed wert haben möchtest, initialisierst du den dann dort.

    GML-Quellcode

    1. ///Create von neuem object
    2. speed = 4;
    3. ///draw
    4. draw_sprite_ext(sprite,0,x,y,1,1,direction,c_white,1);
    5. draw_text(x,y,text);

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


    eine frage hab ich noch ich weiß sie gehört hier eigentlich nicht rein aber wollte kein neuen thread aufmachen...

    also ich lern mich grad bei den partikeln ein und wollte fragen ob es möglich ist eine healthbar aus particel zu erstelln??


    ach und @Aku_Ryou

    was bedeutet das???

    GML-Quellcode

    1. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    2. ///map(val,min1,max1,min2,max2)
    3. return min2 + (max2-min2) * ((val-min1) / (max1-min1));
    4. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::



    und kann mir jemand ein gutes tutorial für shader zeigen???
  • Das ist nur meine momentane Signatur, ich wollte die alte Schroedingers Bunny Werbung ersetzen und habe aber noch kein alternatives Bild von meinen aktuellen Projekten. Jetzt habe ich die Funktion map die es im GM leider nicht gibt entdeckt und finde sie genial, weil man sie fast immer brauchen kann.

    Du kannst zB für deine Healthbar einen sprite mit einer animation aus 4 Bildern machen und mit

    GML-Quellcode

    1. map(health,0,healthMax,0,3);

    wird das richtige Bild für die richtige Menge an Health gewählt. Das berechnet sich aus dieser Formel. Du mapst einen wert in einem Bereich zu einem neuen Wert in einem anderem Bereich. Aus einem Wert von 0 bis 1 kann dann ein Wert von 0 bis 360 werden zB.

    Du kannst deine Healthbar auch mit partikeln machen, aber das ist sehr unpraktisch und nicht empfehlenswert. Du kannst da zB das particle Life an Health anpassen und der partikelstrom wird immer kürzer je weniger leben man hat.

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)
  • Off Topic - Pur
    Es gab mal irgendwo hier aufm Forum eine schöne Sammlung. Die ist aber etwas veraltet (alte Versionen) usw.
    Die englische Seite gmlscripts.com/ hat massig Skripte. Theoretisch fänd ich sowas aber auch ganz cool, wenn man das mehr so hat, dass man eine bessere Übersicht hat und nicht unbedingt, wie in dem Fall, ein Forum. Edit: eigentlich find ich die Übersicht doch ganz gut
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Husi012 ()

  • @Aku_Ryou

    also zü dem wert übergeben:

    ja ich weiß das der error obj_player.txt meint obwohl es die variable nicht gibt....aber ich hatte es aüch mit obj_player.schüss_text probiert ünd aüch mit den anderen ünd ich weiß man würde dann kein create event mehr braüchen weil der schüss schon die werte hat aber wenn man sie dann im schüss objekt bearbeiten will im step event braücht man schon ein create event (aüsser man schreibt direkt immer obj_player.irgendwas)


    es gehört ja so oder:

    create event
    player objekt

    GML-Quellcode

    1. if keyboard check vk space
    2. {
    3. neü = instance_create(x,y,büllet);
    4. neü.dir = 0;
    5. neü.spd = 5;
    6. }


    ünd im büllet objekt
    create event

    GML-Quellcode

    1. spd = obj_player.spd;
    2. dir = obj_player.dir;



    oder??? wenn ich im create event eine variable erstelle ünd diese dann irgendwo benütze mit obj_player. hab ich keine probleme nür wenn ich es so mache aber was mach ich falsch
  • Du brauchst im create event der bullet nichts mehr. Das kann leer bleiben. :) du brauchst im step event dann nur spd und dir verwenden. ohne dem "obj_player." Aber das Create Event musst du leer lassen.

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)
  • acidrain833 schrieb:

    @Aku_Ryou

    also zü dem wert übergeben:

    ja ich weiß das der error obj_player.txt meint obwohl es die variable nicht gibt....aber ich hatte es aüch mit obj_player.schüss_text probiert ünd aüch mit den anderen ünd ich weiß man würde dann kein create event mehr braüchen weil der schüss schon die werte hat aber wenn man sie dann im schüss objekt bearbeiten will im step event braücht man schon ein create event (aüsser man schreibt direkt immer obj_player.irgendwas)


    es gehört ja so oder:

    create event
    player objekt

    GML-Quellcode

    1. if keyboard check vk space
    2. {
    3. neü = instance_create(x,y,büllet);
    4. neü.dir = 0;
    5. neü.spd = 5;
    6. }


    ünd im büllet objekt
    create event

    GML-Quellcode

    1. spd = obj_player.spd;
    2. dir = obj_player.dir;



    oder??? wenn ich im create event eine variable erstelle ünd diese dann irgendwo benütze mit obj_player. hab ich keine probleme nür wenn ich es so mache aber was mach ich falsch



    Thema ist ja schon erledigt, aber ich wollte noch hinzufügen, dass es besser wäre ohne ä ö oder ü im Code. Es funktioniert zwar auch mit, aber du wirst es nirgendswo anders finden, es ist einfach sauberer dann lieber mit ue, ae oder oe zu arbeiten :D