Was ist hierdran nicht richtig? [solved}

  • Was ist hierdran nicht richtig? [solved}

    mir isses zwar fast schon peinlich hier ne frage zu stellen, aber folgendes:
    also ein obj_bullet wird mit diesem code erstellt:

    Quellcode

    1. bullet = instance_create(body.x+86,bbox_bottom,obj_bullet);
    2. bullet.hoehe = 133;
    3. bullet.speed = 10;
    4. bullet.direction = 270;


    dann wird im create event des obj_bullet dieser code ausgeführt:

    Quellcode

    1. body = instance_create(x,y-hoehe,obj_bullet_body);


    meines wissens nach ist das richtig (bei speed und direction klappts ja auch), aber trotzdem kommt die Fehlermeldung "Unknown variable hoehe"
    www.glowingorb.de
    „Wenn es im Universum noch irgendwo intelligente Lebewesen gibt, dann kennen sie vielleicht Schach, höchstwahrscheinlich jedoch GO

    (Schachweltmeister Emanuel Lasker)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Glowing Orb ()

  • Ich vermute, bei instance_create wird direkt das Create-Event aufgerufen. Vielleicht funktioniert es ja so:

    Quellcode

    1. bullet = instance_create(body.x+86,bbox_bottom,obj_bullet);
    2. bullet.hoehe = 133;
    3. bullet.speed = 10;
    4. bullet.direction = 270;
    5. with (bullet) event_user(0);

    User Event 0 von obj_bullet

    Quellcode

    1. body = instance_create(x,y-hoehe,obj_bullet_body);

    Vielleicht ein bisschen unschön, sollte aber funktionieren.

    PS: frag ruhig. Wir bringen dich nicht um. :D

    EDIT:
    Wie wäre es mit einem Skript bullet_create?

    Quellcode

    1. var bullet;
    2. bullet = instance_create(argument0,argument1,obj_bullet);
    3. bullet.hoehe = argument2;
    4. with (bullet) event_user(0);


    Das verwendest du dann einfach mit

    Quellcode

    1. var bullet;
    2. bullet = bullet_create(body.x+86,bbox_bottom,133);
    3. bullet.speed = 10;
    4. bullet.direction = 270;
    I have always wished that my computer would be as easy to use as my telephone. My wish has come true. I no longer know how to use my telephone.
    Bjarne Stroustrup


    Mein GML-Tutorial

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

  • das liegt daran das das create-event gleich nach dem erstellen der instanz ausgeführt wird also:
    [PHP]bullet = instance_create(body.x+86,bbox_bottom,obj_bullet);
    //vor dem folgenden Text wird schon das create-event von obj_bullet ausgeführt und da is hoehe noch nich definiert
    bullet.hoehe = 133;
    bullet.speed = 10;
    bullet.direction = 270;[/PHP]
    du könntest des z.B. umgehen in dem du ENTWEDER bei obj_bullet einen Timer auf 1 setzt und somit des zeug einen frame später ausführt, oder aber was imo besser is du machst eifnach
    [PHP]
    bullet = instance_create(body.x+86,bbox_bottom,obj_bullet);
    with (bullet)
    {
    hoehe = 133;
    speed = 10;
    direction = 270;
    body = instance_create(x,y-hoehe,obj_bullet_body);
    }
    [/PHP]
    edit: damn schonwieder zu spät
    nommal : 6 Minuten???? so lang hab ich aber netmal gschrieben!

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von xiebel ()