licht nur auf einer ebene sichtbar machen

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

  • licht nur auf einer ebene sichtbar machen

    hallo

    also ich hab ein paar glühbirnen gemacht die leuchten.....ich mache ein spiel in dem es mehrere stockwerke gibt und die lampen hängen an der wand.das problem ist das das licht auch in den stock darüber und darunter leuchtet das will ich aber nicht.
    wie kann ich das machen das es dort nicht durchkommt..hier mein code


    obj_lighting
    create

    GML-Quellcode

    1. globalvar light;
    2. light=surface_create(view_wview,view_hview);


    obj_lighting
    step

    GML-Quellcode

    1. surface_set_target(light);
    2. draw_set_color(c_silver);
    3. draw_rectangle(0,0,view_wview,view_hview,false);
    4. surface_reset_target();



    obj_lighting

    draw

    GML-Quellcode

    1. draw_set_blend_mode(bm_subtract);
    2. draw_surface(light,view_xview,view_yview);
    3. draw_set_blend_mode(bm_normal);




    obj_gluhbirne
    end step

    GML-Quellcode

    1. size=250;
    2. draw_set_blend_mode(bm_subtract);
    3. surface_set_target(light);
    4. draw_ellipse_color(x-size/2-view_xview,y-size/2-view_yview,x+size/2-view_xview,y+size/2-view_yview,c_white,c_black,false);
    5. surface_reset_target();
    6. draw_set_blend_mode(bm_normal);



    bitte um hilfe


    und noch was wie mache ich das ein surface bei bestimmten objekten nicht angewendet wird....zb bei der healthbar
  • Du brauchst ein lightsurface auf welches du dann deine Lichtquellen per blendmode und zuletzt alle Wände etc als mask draufmalst. Also Hintergrund schwarz, mit den Lichtern ausradieren, und dann wieder Schwarz verdecken wo solide Objekte sind
    132 little bugs in the code. 132 little bugs. Fix a few, set the compiler to stew, 172 little bugs in the code... :vogel: