surface frage licht

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

  • surface frage licht

    hallo ich habe ein licht erstellt...und lass es mit draw rectangle zeichnen...jedoch will ich das das licht auf der aussenseite des rechtecks schwächer ist.....als im inneren...

    hier der code den ich benutze:

    obj_lightning
    create event

    GML-Quellcode

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


    step event

    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();


    draw event

    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_lampe
    end step event

    GML-Quellcode

    1. ​size=250;
    2. draw_set_blend_mode(bm_subtract);
    3. surface_set_target(light);
    4. draw_rectangle(x-size/2-view_xview,y-size/2-view_yview+50,x+size/2-view_xview,y+size/2-view_yview+30,false);
    5. surface_reset_target();
    6. draw_set_blend_mode(bm_inv_dest_alpha);



    wie kann ich das machen....wenn ich draw ellipse benutze funktioniert es schön das er dort wo die lampe ist hell ist und dann immer dünkler wird...
  • obj_licht:

    create:

    GML-Quellcode

    1. ///init
    2. radius = 150;
    3. //create surf
    4. surf = surface_create(room_width,room_height);

    step:

    GML-Quellcode

    1. ///surface_step
    2. surface_set_target(surf);
    3. draw_set_color(c_black);
    4. draw_rectangle(0,0,room_width,room_height,0);
    5. draw_circle_colour(mouse_x,mouse_y,radius,c_white,c_black,0);
    6. surface_reset_target();


    draw:

    GML-Quellcode

    1. ///draw surf
    2. draw_surface(surf,0,0);
  • ODER...

    2 objecte: obj_licht_dunkel, obj_licht

    +++ Achtung: obj_licht_dunkel muss depth -1 und obj_licht -2

    obj_licht_dunkel:

    create:

    GML-Quellcode

    1. [/u]///create surf
    2. surf = surface_create(room_width,room_height);[u]


    step:

    GML-Quellcode

    1. [/u]
    2. ///surface_step -- macht alles schwarz
    3. surface_set_target(surf);
    4. draw_set_color(c_black);
    5. draw_rectangle(0,0,room_width,room_height,0);
    6. surface_reset_target();
    7. ///draw licht +++ zeichnet in das Surface einen Kreis hinein
    8. with(obj_licht)
    9. {
    10. var radius = 150;
    11. surface_set_target(other.surf);
    12. draw_set_blend_mode(bm_add);
    13. draw_circle_colour(mouse_x,mouse_y,radius,c_white,c_black,0);
    14. draw_set_blend_mode(bm_normal);
    15. surface_reset_target();
    16. }[u]
    Alles anzeigen


    draw:

    GML-Quellcode

    1. [/u]///draw surf
    2. draw_set_blend_mode_ext(bm_dest_color,bm_zero);
    3. draw_surface(surf,0,0);
    4. draw_set_blend_mode(bm_normal);[u]