Kleines Projekt Collision Funktion dazu bringen Draw funktionen mit einzubeziehen

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

  • Kleines Projekt Collision Funktion dazu bringen Draw funktionen mit einzubeziehen

    ersteinma hallo dudes,

    das problem bei meinem derzeitigen projekt ist das sich das collision event ma wieder querstellt;
    ich versuche mit möglichst wenig speicher verschwendung dieses objekt zu generieren
    ich habe im spiel einma nee box und innen drin dann ein paar dieser objekte ziel des progs bzw spiels oder auch simulation sollte es sein das sich diese 'ringe' gegenseitig auf fressen und am ende ein großer ring entstehen soll

    Die frage selbst ist jetzt:
    gibt es nen trick mit dem man collision abfragen dazu bringen kann auch draw funktionen mit einzubeziehen?

    Hier das Problematische Obj:
    Sprite: <no sprite>
    Solid: false
    Visible: true
    Depth: 0
    Persistent: false
    Parent: <no parent>
    Mask: <same as sprite>

    Create Event:

    GML-Quellcode

    1. rad=5
    2. direction=round(random(360))
    3. speed=random(4)+2



    Step:

    GML-Quellcode

    1. if(collision_circle(x,y,rad,lilobj,1,1)&&round(random(5)))
    2. {
    3. rad+=1
    4. other.rad-=1
    5. //speed*=0.1
    6. }
    7. if(collision_circle(x,y,rad,body,1,1))
    8. {
    9. direction=point_direction(x,y,room_width/2+random(256)-125,room_height/2+random(256)-125)
    10. }
    11. if(rad=0)
    12. {instance_destroy()}
    Alles anzeigen



    Draw:

    GML-Quellcode

    1. draw_circle(x,y,rad,1)


    und hier die GM datei(7 pro)
    spieltest.rar
  • Ohne Sprite, keine Kollision.
    Mache ein schwarzes Kreis-Sprite
    - so groß, wie der Draw-Kreis -
    und das dann als Sprite. Weil du Draw
    benutzt, wird das im Spiel auch nicht an-
    gezeigt, aber es kann kollidieren.


    Ansonsten ist es mit collision_circle, collision_line und so weiter
    auch getan, falls du kein Mask-Sprite benutzen willst.

    Magical dream time!
  • an sowas hab ich auch schon gedacht aber ich weiß nicht wie ich das sprite bzw die mask dazu bringe prozentuell zu vergrössern

    GML-Quellcode

    1. draw_circle(x,y,rad,1)


    rad gibt ja die größe von dem sprite an
    und ich will das das sprite bzw die mask ja auch mit wächst und nicht das die bälle einfach so grösser werden
  • Megamag schrieb:

    GML-Quellcode

    1. image_xscale = rad
    2. image_yscale = rad


    Damit kannst du Sprites vergrößern.


    Habe den Code am Create und einma am event step angehängt aber verändern tut sich der sprite nicht...
    collision wird aber ausgelösst ôo
  • copyboy schrieb:

    Wenn du das Sprite manuell drawst, dann benutz draw_sprite_ext.
    Sonst wüsste ich nicht woran es liegen könnte :P


    naja wenn ich jetz noch den draw verwenden würde könnt ichs prüfen aber ich habs auf nee andere art gelösst habs auf nem kleinen pixelfeld berechnet und dann im raum grösser gedrawt;

    habe also einen kleinen view gemacht von 20x20px der dient als map und hab dann mit nem algorhytmus die position der einzelnen objekte im raum berechnet
  • Critical schrieb:

    Wie wärs mit

    GML-Quellcode

    1. set_automatic_draw(0);
    ?

    So kannst du in jedem Event Dinge zeichnen. Da du das Zeichnen übernimmst musst du am ende des Events natürlich wieder

    GML-Quellcode

    1. set_automatic_draw(1);


    schreiben ;)
    mfg Critical


    nya ich weiß zwar nicht wofür ich dies nutzen sollte um nee collision vorzutäuschen aber trotzdem danke ;)

    hab das projekt erfolgreich zu ende gebracht auch wenns eig nutzlos is hab scho wieder neues Projekt das ich dann vllt bald ma hier im forum posten werd
    (das Spiel wird MediLife heißen)

    theard kann geclosed werdn!