Sprite anhand von Eckpunkten zeichnen

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

  • Sprite anhand von Eckpunkten zeichnen

    ich habe folgende situation:

    es geht um den schatteneffekt von DD. Ich muss das Sprite des jeweiligen objektes (hier der sack) so zeichnen, dass es wie bei draw_sprite_ext mit alpha und einer überblendfarbe, aber anhand der eckpunkte dieses roten rahmens (der rahmen ist nur zum zeigen) gezeichnet wird, also verzerrt. Ich habe schon gedacht dass es mit draw_primitive irgendwie funktionieren sollte, bin aber zu keiner lösung gekommen. Falls ihr mein problem nicht verstanden habt, fragt bitte nach^^
    ich hoffe ihr könnt mir (und dem GP-Team) helfen.
    “Computers are good at following instructions, but not at reading your mind.” (Donald Knuth)

    Ich schreibe mit Neo.
  • GML-Quellcode

    1. draw_set_color(c_white);
    2. shadow = sprite_get_texture(sprite0,0);
    3. draw_primitive_begin_texture(pr_trianglestrip,shadow);
    4. draw_vertex_texture(0,0,0,0);
    5. draw_vertex_texture(0+_x,256,0,1);
    6. draw_vertex_texture(256+_x,256,1,1);
    7. draw_vertex_texture(256,0,1,0);
    8. draw_vertex_texture(0,0,0,0);
    9. draw_primitive_end();

    _x is die verschiebung, einfach mal weng damit rumprobiern, das 256 musste natürlcih auch ncoh anpassen und statt trianglestrip kannste auch andere sachen nehmen.
  • nein, so funktioniert es nicht, es wird einfach nichts gezeichnet...
    wie ich die koordinaten der punkte berechne, weiß ich schon (nicht so wie in dem beispiel^^). ich habe jetzt die

    GML-Quellcode

    1. draw_vertex_texture()
    in die reihenfolge, wie du es hast (unten links, oben links, oben rechts, unten rechts, unten links) und auch die xtex und ytex argumente so wie in deinem beispiel. was soll das draw_set color(c_white) bewirken? ich will, dass es (wie bei draw_sprite_ext) mit einer alpha (0,5) und einer überblendfarbe (c_black) gezeichnet wird. das pr_trianglestrip kann ich ja nicht einfach so verändern, denn dann müssten die punkte ja in anderer reihenfolge sein...
    “Computers are good at following instructions, but not at reading your mind.” (Donald Knuth)

    Ich schreibe mit Neo.

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

  • GML-Quellcode

    1. draw_vertex_texture_color()

    eventuell hilft dir diese funktion?

    EDIT:
    [...]was soll das draw_set color(c_white) bewirken?

    Damit stellst du die Zeichnungsfarbe ein.
    Die brauchste aber nicht wenn du den befehl oben benutzt.

    EDIT by WIN: auch für normalsterbliche lesbar gemacht.

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

  • Ich hab deine datei runtergeladen und getestet und es ging...
    dann hab ichs genauso bei mir eingebaut und es ging nicht...

    nach ewiger rumprobiererei ist mir dann ein satz in der anleitung auf gefallen:
    es dürfen nur texturen mit 32x32, 64x64, usw sein. das war die lösung meines problems. mein testsprite hatte natürlich nicht diese größe, aber als ich es vergrößerte, lief es einwandfrei. jetzt ist das problem also gelöst. danke nochmal für deine hilfe, xiebel.
    “Computers are good at following instructions, but not at reading your mind.” (Donald Knuth)

    Ich schreibe mit Neo.