Schatten nur bei objekten mit Var: schatten

  • Schatten nur bei objekten mit Var: schatten

    Hi,
    ich hab diesen Script von in ein anderen Threat gefunden, aber ich will das er nicht bei allen ein Schatten macht, sondern nur bei denen die den Variabel "schatten" auf "2" haben. Zwar gibt es eine zweite Lösung, nämlich bei allen Objekten ein draw event machen und so denn Schatten bei jeden einzelnen erstellt, aber das ist mir zu umständlich.
    Kann mir also jemand helfen?

    Code im Draw-Event:

    GML-Quellcode

    1. with all
    2. {
    3. if sprite_index >= 0
    4. {
    5. draw_sprite_ext(sprite_index,-1,x+16,y+16,1,1,0,c_black,0.5)
    6. }
    7. }
    *gähn*
  • RE: Schatten nur bei objekten mit Var: schatten

    Sollte mit folgendem Code klappen.

    GML-Quellcode

    1. with all
    2. {
    3. if (sprite_index >= 0) && (schatten==2)
    4. {
    5. draw_sprite_ext(sprite_index,-1,x+16,y+16,1,1,0,c_black,0.5)
    6. }
    7. }
    "Die Erde ist ein Irrenhaus. Dabei könnte das bis heute erreichte Wissen der Menschheit aus ihr ein Paradies machen. Dafür müsste die weltweite Gesellschaft allerdings zur Vernunft kommen."
    - Joseph Weizenbaum
  • Mhh, es geht nicht, er sagt immer das er die Variabel "schatten" nicht findet, also ich hab alles so gemacht.

    Ein Objekt(z.B. "Player") erstellt mit Variabel: schatten=2
    dann habe ich ein Objekt erstellt mit den Namen "Schattenmacher" und den Code oben im Draw-Event eingefügt. Nun sagt er immer er findet die Variabel schatten nicht. Irgendwie muss man sagen das er nach jede Objekt nach dieser Var. sucht und die die die diese Var. auf 2 haben soll er ein schatten machen.
    *gähn*

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

  • Es müssen alle Objekte die Variable Schatten haben, hat eines das nicht kommt der Fehler. Könnte man höchstens so abfangen.

    GML-Quellcode

    1. with all
    2. {
    3. if (variable_local_exists('schatten')){
    4. if (sprite_index >= 0) && (schatten==2)
    5. {
    6. draw_sprite_ext(sprite_index,-1,x+16,y+16,1,1,0,c_black,0.5)
    7. }
    8. }
    9. }
    "Die Erde ist ein Irrenhaus. Dabei könnte das bis heute erreichte Wissen der Menschheit aus ihr ein Paradies machen. Dafür müsste die weltweite Gesellschaft allerdings zur Vernunft kommen."
    - Joseph Weizenbaum
  • Weil er das eben für alle Objekte prüft, das liegt an der Logik und daran kann man nichts ändern. Wenns schneller gehen soll musst du es umgedreht machen und eben allen Objekten die Schatten haben sollen dieses Skript implantieren, das geht schneller.
    "Die Erde ist ein Irrenhaus. Dabei könnte das bis heute erreichte Wissen der Menschheit aus ihr ein Paradies machen. Dafür müsste die weltweite Gesellschaft allerdings zur Vernunft kommen."
    - Joseph Weizenbaum
  • Ich würde generell keine Parents dafür verwenden, da der entsprechende Code schließlich ins Draw-Event muss.
    Wird das Draw-Event ausgeführt wird das normale Sprite nicht mehr gezeichnet. Das würde dann Probleme hervorrufen.

    Für Objekte, die nichts im Draw-Event haben, könnte man noch
    draw_sprite(sprite_index,-1,0,0)
    anhängen, aber für solche, die noch anderen Code im Draw-Event haben, müsste man das ganze dann trotzdem wieder extra machen.
    Hier werden sie geholfen:
    [Regeln] [GML] [Hilfe] [Suche] [Posten] [Duden.de]
    [Wenn das alles nicht mehr hilft] [Dunning-Kruger]


    "Die Vernunft sollte Autorität definieren; nicht umgekehrt!"
    "Selber denken regt das Gehirn an."
    - Niffel f.k.a. Kilik

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

  • Benutzer online 1

    1 Besucher