Problem mit Beleuchtung nach xiebel

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

  • Problem mit Beleuchtung nach xiebel

    Hi Leuts!

    Ich probier grade in meim jump&shoot-game ein Beleuchtungssystem einzubauen. Dabei hat mir Xiebel mit seinem Tutorial schon seeeeeehr geholfen :D - ich habe genau dieses System benutzt was auch funktioniert.

    Nun folgendes Problem: wenn ich den Schatten und die Lichter in der oberen linken Ecke von meinem Level hinstopfe, funktioniert das ganze einwandfrei.Wenn ich die Lichter und den light_controller jedoch dahinstelle, wo ich ihn haben will, dann malt mir das ganze einfach die Lichtchen nicht mehr ?(!
    Hab jetzt wirklich schon n haufen rumprobiert, aber kriegs einfach nich.
    Also den schwarzen Grundschatten hab ich schon da, wo ich ihn haben will, und auch in der entsprechenden Größe, aber wie gesagt, sobald sich die Lichter nich mehr in der linken oberen Ecke befinden, werden sie von der surface einfach nicht mehr beachtet und es wird nur das schwarze übergezeichnet.

    Woran liegts?!
    thx
  • Hm kann da jetzt so auch nicht direkt helfen, hab schon ewig nichts mehr mit dem GM gemacht... Wenn du Lust hastkannst du mir ja nen kleinen Test-level machen wo das Problem auftritt, dann schau ichs mir mal an. Läuft das noch mit der 5.1er Version, bzw gibts überhaupt schon eine neue? Muss auch selber mal schauen, was ich da damals überhaupt zusammengeschustert habe :D

    PS: Deine Mail war schon im Papierkorb, dann hab ich grad noch so gemerkt, dass des ja gar kein spam is :ops:
  • Soooooooooo.....
    Xiebel hat das Problem erfolgreich gelöst :top:.
    die einzig nötige Veränderung war, das Beleuchtungssystem View-fähig zu machen, was man wie folgt macht:

    im script_light_init() steht nun:

    GML-Quellcode

    1. a_color=make_color_rgb(255-color_get_red(argument0),255-color_get_green(argument0),255-color_get_blue(argument0));
    2. surface=surface_create(view_wview[view_current],view_hview[view_current]); // Surface wird je nach Größe der View[0] erstellt


    im script_light_refresh()
    wird aus

    GML-Quellcode

    1. draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha);

    einfach

    GML-Quellcode

    1. draw_sprite_ext(sprite_index,image_index,x-view_xview[0],y-view_yview[0],image_xscale,image_yscale,image_angle,image_blend,image_alpha);


    und schließlich macht man noch im script_light_draw() aus

    GML-Quellcode

    1. draw_surface(surface,x,y);

    einfach

    GML-Quellcode

    1. draw_surface(surface,view_xview[0],view_yview[0]);


    thats it - Lohrbeeren bitte an Xiebel :happy:.
    Noch ein kleiner Schliff von mir; im object_light_controller aus dem "Step"-Event ein "End Step"-Event machen, das verhindert das "Ruckeln" der Lichter wenn sich die View bewegt.

    Vielen Dank an Xiebel für die Bemühungen!