BG-Frage und Objekt nur im runden Bereich

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

  • BG-Frage und Objekt nur im runden Bereich

    So, vll sind das N00b-Fragen, aber keine Ahnung, weil ich glaube ich hab hier noch nie was gefragt :D
    Naja, zu meinen Fragen, ich bastele gerade an einem netten Game, was bis morgen oder übermorgen fertig sein soll. Meine Probleme bis jetzt:

    1. Das BG-Prob: Ich habe einen 800x600 px BG mit Paint gepixelt. Und dieses grelle grün als BGFarbe benutzt, die er transparent machen soll. Bei transparent ist auch ein Häkchen, nur wird es nicht transparent, d.h. ich sehe das hässliche grün immer noch. Es ist im BMP Format. Geht bei allen Grafiken, nur bei der net, nicht mal als Objekt.

    2. Das Objekt nur im runden Bereich Prob: Ich habe auf meinem BG (vgl. oben) eine runde Stelle, ich möchte, dass Objekte dort zufällig erstellt werden. Klappt auch soweit, nur halt nicht im runden Bereich. Sondern in einem Quadrat, was dann auch noch bei 0/0 anfängt. Irgendwie geht das anders, das weiss ich, habs bloss vergessen*upss*. Also nochma kurz: Die Objekte sollen NUR in dem runden bzw. mehreckigen Bereich erstellt werden.


    Ich hoffe ihr könnt mir helfen^^


    PS: Gibt Problem fixing Credit^^
  • Original von Extinct Sun
    Und unten links? Wenn du da einen Hintergrund-Gleichfarbenen Punkt hinzeichnest, sollte es klappen.


    dann wird aber die grafik löchrich, was ja blöd ist.

    edit: geht auch nicht...

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

  • RE: BG-Frage und Objekt nur im runden Bereich

    1.: Bist du sicher, dass alle grünen Pixel genau(!) die selbe Farbe haben? Sonst kenne ich keine mögliche Fehlerquelle.

    2.:

    GML-Quellcode

    1. var r,a;
    2. r=random(ABSTAND); //ABSTAND=Abstand vom Zufallskreismittelpunkt
    3. a=random(2*pi);
    4. x=MX+r*cos(a); //MX=Zufallskreismittelpunkt.x
    5. y=MY-r*sin(a); //MY=Zufallskreismittelpunkt.y

    Das sollte helfen ;).

    Dragoon
    int (*x(*x(int))[5])(int*);
    Confused? Yes, it's C!

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

  • r ist die allgemeine Bezeichnung für Radius.
    a bedeutet Alpha und wäre also ein Winkel.
    2*pi im Bogenmass(RAD) entspricht 360°(DEG), also eine volle Umdrehung.
    Zufälliger Radius + Zufälliger Winkel = Zufälliger Punkt in einem Kreis ;)
    *hust* :P
    Da kannst du noch einige Dinge zu cos() und sin() nachlesen...

    Zum BG: Schneide mal die unterste-linke Ecke (32*32 Pixel) aus und poste sie hier.

    Dragoon
    int (*x(*x(int))[5])(int*);
    Confused? Yes, it's C!
  • ok, erst mal danke für des mit dem kreis, das probier ic morgen und schreib, dann was ich falsch gemacht habe ;)
    aber gibt credit für dragoon und extinct. Was mit dem BG is check ich net. Ich hab das alles auf einem anderen PC, der ist imo aus. Ich lad morgen mal die gm6 hoch und schick die dann per PN an dich, ist das ok? weil ich will net, dass das schon alle sehen, ist ja noch nicht fertig :D

    PS: Ich hab bestimmt was bei dem BG nich gecheckt oder falsch gemacht...
  • poste doch einfach mal den BG , aber das mit dem "löchrig" - werden ist klar, er macht alle Pixel mit Identischer Farbe weg,
    nicht nur den äußeren Rand.

    Wenn du jetzt quasi nur den Rand des Objektes unsichtbar machen willst, dann lege im GFX Progi eine Ebene an mit einer Maske die den äußeren Rand kennzeichnet Ebene drunterschieben, maske mit abweichender Farbe füllen,speichern.
    Dann kann man aber in der Mitte z.B. einer Wolke nicht sauber die Schnittkanten hinkriegen, sieht so trullalla aus (fransig, nicht sauber).
    Nimm besser eine Alphamaske und setze in den create ev deines zu maskierenden Objektes.
    sprite_set_alpha_from_sprite(hier_der_name_des_sprites_was_maskiert_werden_soll,hier_der_name_der_maske);
    Für die Maske mußt du halt noch ein schwarz/weiß Bild erstellen, wo du alles schwarz malst, was wegtransparentiert werden soll und alles was du weiß machst bleibt erhalten, das sieht dann sehr sauber aus :o)
    Gruß MelkMann
    Edit by Niemand
    Spammer.....
  • also, das mit dem maske usw. hab ich kein bissl gepeilt :D
    Aber danke, mit dem BG mach ich das jetzt ganz einfach, da wo der nicht transparent wird, es aber werden solle mach ich ein interface hin..lol
    Naja, aber ich lads heute Nachmittag warscheinlich hoch.

    Wegen dem runden usw. noch eine Frage, der Code von Dragoon war zwar relativ hilfreich, nur hab ich leider keinen runden bereich, der is mehr oval, eigentlich eher vieleckig. Wär schön, wenn da jemand noch eine lösung hätte^^
  • Versuchs mal damit:

    GML-Quellcode

    1. var r,a;
    2. r=random(ABSTAND); //ABSTAND=Abstand vom Zufallskreismittelpunkt
    3. a=random(360);
    4. x=MX+r*cos(degtorad(a)); //MX=Zufallskreismittelpunkt.x
    5. y=MY-r*sin(degtorad(a)); //MY=Zufallskreismittelpunkt.y
    Könnte besser sein, aber der "runde Fehler" liegt am Runden des GM, da kann man nicht viel machen.

    Zum BG: Der GM macht alle Pixel mit der Farbe des Pixels ganz unten links(!) transparent. Alle Pixel die transparent sein sollen, müssen GENAU diese Farbe haben, und nicht nur von Auge so aussehen.

    Dragoon

    EDIT: Fehler korrigiert
    int (*x(*x(int))[5])(int*);
    Confused? Yes, it's C!

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Dragoon ()