Auf Sprite gehen

  • GM 7

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

  • Lies Dir in der Dokumentation das Thema "Kollisionen" durch. Interessant sind besonders die Funktionen place_meeting sowie collision_point. Denk daran, daß mask_index maßgeblich ist (nicht sprite_index). Wenn möglich, mach das Sprite so klein wie möglich, und skaliere es mit image_xscale und image_yscale hoch. In dem Beispiel was Du gezeichnet hast, würden z.B. 7x4 Pixel reichen, und der Faktor beim Vergrößern läge so um 64 grob geschätzt. Precise collision checking sollte schon an sein ;)
    Wichtig ist auch, wie genau die Figur bewegt wird. Du brauchst nämlich eine Methode, die besagten Funktionen auch sinnvoll anzuwenden. Vorsorglich lege ich Dir dafür Antroid's MoveRound()ans Herz. Besser kann man sowas kaum lösen - es sei denn, Du willst daß die Figur von der Wand abprallt wie ein Ball oder so. Es gibt auch bestimmt mehrere Themen hier im Forum, die sich mit Wand-Kollisionen befassen.

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

  • Auf einem Sprite laufen ist, meiner Meinung nach, nicht so einfach mit place_meeting und co machbar, es wäre leichter, da ne unsichtbare Wand drum zu machen denke ich.

    Oder du machst das aus 2 Sprites, einmal das, worauf man laufen soll, und dann den Rand, dann könntest du nach Kollisionen mit dem Randsprite suchen, wäre allerdings wieder das gleiche Prinzip, halt nur in 1 Objekt.
    So far, Schattenphoenix~
    _____________________________________________________________________________
    "Who needs a stairway to heaven...
    If there is an elevator to hell... ?
    "
    - Vergessen
    "Auch ein perfektes Chaos ist etwas vollkommenes."
    - Jean Genet
  • GML-Quellcode

    1. //---------Moveing-------------
    2. hubu=instance_nearest(x,y,cube)
    3. hub=point_distance(x,y,hubu.x,hubu.y)
    4. if hited=false&&global.playdeath=false
    5. {
    6. if collision_point(x,y,cube,false,false)
    7. {
    8. if distance_to_object(obj_char)<90&&distance_to_object(obj_char)>4
    9. {move_towards_point(obj_char.x,obj_char.y,0.2)} else{speed=0}
    10. }
    11. else
    12. {
    13. if distance_to_object(hub)>1&&!distance_to_object(obj_char)<90
    14. {
    15. move_towards_point(hubu.x,hubu.y,0.1)
    16. }
    17. else
    18. {
    19. speed=0
    20. }
    21. }
    Alles anzeigen



    So sieht mein Code aus (den hatte ich davor schon),ja aber is ganz schön unschön wenn er hängen bleibt am Ende des Sprites .
    SPrites als Collision neben der Plattform kann ich auch nicht nehmen da ich ja diesen Gegner herunterschubsen will (3D)
    GM oldie ich bin :troll:

    Spiel-Referenzen : 8 Spiele Hier 2 Screens der Rest ist verschollen :c
  • Du könntest doch die Höhe bei der Kollision berücksichtigen...


    Moonix3D - Eine simple 3D Engine basierend auf den GM-3D Funktionen

    Versuchs damit mal, das kannste alles problemlos verwenden, die Bodenfindung bin ich ganz stolz drauf, die funktioniert 100%ig, musst es nur evtl. anpassen.
    So far, Schattenphoenix~
    _____________________________________________________________________________
    "Who needs a stairway to heaven...
    If there is an elevator to hell... ?
    "
    - Vergessen
    "Auch ein perfektes Chaos ist etwas vollkommenes."
    - Jean Genet
  • Benutzer online 1

    1 Besucher