Surface Problem

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

  • Surface Problem

    Hi, das ist mein erster post hier^^


    Ich hab die Game Maker Version 6.1 registriert und möchte (schaff es
    hoffentlich auch ^^ ) einen kleinen Line Rider Klon programmieren.

    Ich hab es auch schon hinbekommen mit Surfaces Linien zu zeichnen
    allerdings bleibt der Hintergrund beim gestarteten spiel nicht weiß
    sondern wird bunt "gepixelt".

    Und ausserdem werden die gemalten Linien nur teilweise gelöscht und beim nächsten start sind noch teile der linien vorhanden.

    Weiß jemand eine Lösung für mein Problem? Ich hoffe es ;)



    SRY wenn es das Thema schon gab, aber ich habe es nicht gefunden... :)
    Gestern stand ich noch vor dem Abgrund... heute bin ich einen Schritt weiter.
    :gmlove:
  • Danke für die Antwort.
    Funktioniert wunderbar gegen mein Problem, allerdings kann ich draw_clear nur direkt zum draw_surface Befehl schreiben und daduch wird die (in meinem fall weiße) surface sozusagen über die linien die ich zeichne "gemalt" (hoffe ich hab mir das richtig gedacht 8| :huh: :S )
    Eigentlich müsste ich ja draw_clear zum surface_create schreiben, aber dadurch wird es nicht besser sondern eher schlimmer^^
    Was kann ich dagegen tun?
    (Sry wenn ich dich irgendwie falsch verstanden hab)

    EDIT: Hab noch was bemerkt. Das was ich mit "verpixelt" meinte sind anscheinend Teile von irgentwelchen Bildern (Sprites aus Spielen oda so) so sieht es jedenfalls aus. Also könnten es wirklich Reste vom einem Speicher sein. Müsste ich dann nicht die Speichereintragungen löschen können?
    Gestern stand ich noch vor dem Abgrund... heute bin ich einen Schritt weiter.
    :gmlove:

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von XXXX ()

  • Diese Reste kannst du entfernen indem du draw_clrear() oder draw_clear_alpha() verwendest (und zwar indem du auf das Surface zeichnest).
    Ich benutze darum immer folgendes Script um Surfaces zu erstellen:
    surface_create_(breite,höhe)

    GML-Quellcode

    1. var su;
    2. su=surface_create(argument0,argument1);
    3. surface_set_target(su);
    4. draw_clear_alpha(c_white,0);
    5. surface_reset_target();
    6. return su;
    int (*x(*x(int))[5])(int*);
    Confused? Yes, it's C!
  • Ok Danke das dürfte funktioneieren, allerdings muss ich jetzt leider :( :( fragen wie ich meinen anderen code umschreiben muss damit er wieder funktioniert, denn bisher habe ich im StepEvent folgenden code benutzt:

    GML-Quellcode

    1. x = mouse_x;
    2. y = mouse_y;
    3. if !(mouse_check_button(mb_left)) {exit;}
    4. surface_set_target(surface);
    5. draw_line(xprevious,yprevious,x,y);
    6. surface_reset_target();

    (code von copyboy aus dem Thread "Bleistift")

    Dieser funktioniert nun allerdings nicht mehr mit der Fehlermeldung:

    "surface_set_target(surface);
    at position 21: Unknown variable surface"
    (nur der wichtigste teil^^)

    Das leuchtet mir ja auch ein da ja die Variable geändert wurde.
    Ich weiß nur nicht ob das richtig ist und wie ich das ändern kann.
    BITTE UM HILFE. DANKE!!
    Gestern stand ich noch vor dem Abgrund... heute bin ich einen Schritt weiter.
    :gmlove:
  • Du musst im Create Event noch die Surface erstellen, mithilfe von Dragoons Skript:

    GML-Quellcode

    1. surface=surface_create_(breite,höhe);

    Also zuerst ein neues Skript erstellen, es "surface_create_" nennen, und Dragoons Code einfügen. Dann diesen Code ins Create Event von dem Objekt, wo die Surface gezeichnet wird.

    Viel Glück ;)
  • Ok danke das wars dann^^
    Ich hatte statt einem extra skript Dragoons code direkt zum CreateEvent geschrieben :headtouch:
    Danke für eure Antworten (ich hab mich glaub ich auch nen bissel dumm angestellt aba jetzt wird mir auch langsam klar was falsch war *grins*)

    :thumbsup: :thumbsup:
    Gestern stand ich noch vor dem Abgrund... heute bin ich einen Schritt weiter.
    :gmlove: