panzer kollision

  • GM 8

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

  • panzer kollision

    hat jeand ne ahnung wi am besten das kolisions system bei meinem panzer mache damit er nicht in häuser reinfäht und vor allem nicht reindreht . ich bewege den panzer per
    w:
    x+=lengthdir_x(speed1,direction+90);
    y+=lengthdir_y(speed1,direction+90);

    s:
    x-=lengthdir_x(speed1/1.5,direction+90);
    y-=lengthdir_y(speed1/1.5,direction+90);

    a:
    direction+=1

    d:
    direction-=1
    :rage:
  • Wie wär's wenn du zuerst die Rechtschreibung korrigierst?

    Regeln gm-d.de schrieb:

    Ebenso setzen wir eine größtenteils korrekte Rechtschreibung vorraus (Geistige Ergüsse auf dem Niveau eines Zehnjährigen mit der Rechtschreibung eines Erstklässlers sind unerwünscht!).


    Ansonsten kannst du, sofern dein Objekt ein Sprite hat statt das dieser nur gezeichnet mittels draw_text(x,y,string) wird, das normale Kollisions-Event :event_collision: benutzen.
    :thumbsup:
  • nein das problem ist zum eine das ich zum einen die sprites nur drawe
    ( mein panzer besteht aus panzerung turm geschütz und ketten alles einzelne objekte)
    und ich mein panzer soll nicht durch objekt wie z.b häuser fahren können aber auch nicht stoppen sondern am besten daran entlanggleiten allerdings arbeite ich nicht mit speed sondern eben nur mit den x und y + siehe oben
    :rage:
  • Solange dein Panzer horizontal fährt, kannst du die folgende Abfrage machen. Sollte der Panzer vertikal fahren, machst du einfach das Geschmiere bei X der Funktion place_free() raus und setzt es bei Y ein.

    GML-Quellcode

    1. if (place_free(x+sprite_width/2+1,y)
    2. {
    3. // KEIN HAUS, WETERFAHREN
    4. x += 1;
    5. // ENDE
    6. }
    7. else
    8. {
    9. // HAUS IN 3 PIXELN VORAUS!
    10. with (haus_obj)
    11. {
    12. hauswidth = sprite_width;
    13. global.calculate_x = x + hauswidth/2;
    14. global.calculate_y = y;
    15. }
    16. instance_create(global.calculate_x,global.calculate_y,unischtbares_objekt);
    17. move_towards_point(unischtbares_objket.x,unsichtbares_objekt.y);
    18. // herumfahren
    19. // ENDE
    20. }
    Alles anzeigen


    Um's herumfahren kann man evtl. ein unsichtbares Objekt auf der gegenüberliegenden Seite des Hauses erstellen und dann, sofern der Benutzer weiterfährt, die normale Bewegung kurz ausschalten (evtl. Variablen benutzen) und dafür move_towards_point() benutzen. Am unsichtbaren Objekt wird die normale Steuerung wieder aktiviert und move_towards_point() wieder deaktiviert. Siehe zu der Idee mein Skript. Es ist alles darauf ausgerichtet für die horizontale Richtung. Der Code kommt ins entsprechende Event. Je nach dem, ob der Panzer nach links oder rechts fährt, heisst es x + bzw. x - 1.

    Das kommt in das Event, indem der Panzer gesteuert wird.
    :thumbsup:

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

  • Benutzer online 1

    1 Besucher