2 probleme mit schuss

  • 2 probleme mit schuss

    Hi!
    Ich programmiere ein cs2d ähnliches spiel,
    mit der vogelperspektive und der spieler Zielt immer zur Maus...
    Mit dem Schuss habe ich es so gemacht

    es wird eine gelbe linie gezeichnet, die von der Waffe bis zur Maus geht... Da ist schon mal Frage eins:
    1.>>>Die linie (schuss linie) soll noch weiter gehen, als wo die Mausposition ist, es ist schließlich eine Pistole und keine Laser Waffe oder so<<<

    Zur gleichen Zeit wird eine unsichtbare Kugel erstellt, die die strecke verläuft wohin man Zielt, diese Kugel ist für die Kollision zuständig, Sie soll sich sehr schnell bewegen, weils numal unrealistisch ist, wenn die kugel erst 10 sek. später den Gegner trifft. Und da gibts auch Probleme:
    2.>>>die Kugel hat z.B eine geschwindigkeit von 100 Pixeln in einen step... aber nun passiert es oft, dass sie "über" den Gegner springt, weil der gegner nur eine größe von 32x32 pixeln hat... also wie kann ich die kugel schnellbewegen und sie dazu bringen, den Gegner trotzdem nich zu verfehlen??>>>

    Okay das wars auch schon, hoffe ihr habt verstanden, was ich meine, wenn nicht dann bitte nachfragen!!!

    mfg funky :)
  • 1.

    GML-Quellcode

    1. dir=point_direction(x,y,mouse_x,mouse_y)
    2. x1=x+lengthdir_x(400,dir)
    3. y1=y+lengthdir_y(400,dir)
    4. draw_line(x,y,x1,y1)



    2.

    GML-Quellcode

    1. x1=x+lengthdir_x(20,direction)
    2. y1=y+lengthdir_y(20,direction)
    3. x2=x+lengthdir_x(40,direction)
    4. y2=y+lengthdir_y(40,direction)
    5. x3=x+lengthdir_x(60,direction)
    6. y3=y+lengthdir_y(60,direction)
    7. x4=x+lengthdir_x(80,direction)
    8. y4=y+lengthdir_y(80,direction)
    9. // kann man natürlich eleganter mit einer for schleife lösen, will es jetzt aber nicht zu kompliziert machen!
    10. if (place_meeting(x1,y1,obj_gegner) || place_meeting(x2,y2,obj_gegner) || place_meeting(x3,y3,obj_gegner) || place_meeting(x4,y4,obj_gegner))
    11. {
    12. // was auch immer bei einer kollision passieren soll
    13. }
    Alles anzeigen

    Was ich gemacht habe:
    Ich rechne die punkte x1,y1, x2,y2 ... im verhältnich zu direction aus und teste ob sich dort ein gegner befindet! :D