move_bounce_solid(1) .. grr

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

  • move_bounce_solid(1) .. grr

    hallo zusammen ;)

    also ich hab da ein Problem (mal wieder :P ) unzwar hab ich ein Spiel programmiert das auch zwei Rechnern läuft (also über Lan oder Inet) .. dort hab ich z.B. 3 bälle.. einen davon kann man einmal bewegen. So..also schön und gut. Aber wenn die Bälle auf die Wand auftreffen prallen die total ungenau ab. Auf den einen PC geht er etwas in eine andere richtung als auf den ersten pc .. -.- das muss am Befehl

    move_bounce_solid(1)

    liegen. Gibt es eine Möglichkeit eine Kollision mit der Wand ohne diesen code zu programmieren ? Also so das er bei beiden PCs exakt gleich abprallt ? Ansonsten muss ich immer eine Datenflut übertragen :-/
  • ne darum gehts nicht ;) sind zuviele daten die ich gleichzeitig übertragen müsste.. und auch unnötig.. der überträgt beim schlag die daten und dann wenn die letzte kugel steht. Mir gehts eigentlich darum, eine genaue kollisionsabfrage mit der wand zu haben.

    Die Kugeln selbst haben diese kollisionsabfrage (also wenn eine Kugel auf die andere trifft) :

    Quellcode

    1. {
    2. if(id>other.id)
    3. {
    4. dir=point_direction(x,y,other.x,other.y);
    5. force=((lengthdir_x(1,dir)*hspeed)+(lengthdir_y(1,dir)*vspeed))*mass;
    6. with(other)
    7. {
    8. dir=point_direction(x,y,other.x,other.y);
    9. force=((lengthdir_x(1,dir)*hspeed)+(lengthdir_y(1,dir)*vspeed))*mass;
    10. motion_add(dir,-(force+other.force)/mass);
    11. }
    12. motion_add(dir,-(force+other.force)/mass);
    13. while(place_meeting(x,y,other))
    14. {
    15. x-=lengthdir_x(1/mass,dir);
    16. y-=lengthdir_y(1/mass,dir);
    17. with(other)
    18. {
    19. x-=lengthdir_x(1/mass,dir);
    20. y-=lengthdir_y(1/mass,dir);
    21. }
    22. }
    23. }
    24. }
    Alles anzeigen