mousposition relativ zum view verändern

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

  • mousposition relativ zum view verändern

    Hi,
    ich möchte das sich die maus genauso wie die spilefigur bewegt, also wen ich rechtsdrücke geht der player x+=4 die maus soll ebenso ihre x-koordinate um +4 verändern.
    ich dachte das geht so:

    GML-Quellcode

    1. window_mouse_set(mouse_x+x-xprevious,mouse_y+y-yprevious);
    2. //bzw so
    3. window_mouse_set(window_mouse_get_x+x-xprevious,window_mouse_get_y+y-yprevious);
    das geht leider nichtso wie ih es mir vorgestellt habe, da entweder zu langsam (wen sich der view nicht bewegt) oder zu schnell (wen sich der view bewegt).
    kennt jemand eine möglichkeit direkt die mouse_x bzw. mouse_y koordinaten zu ändern?

    danke
    :) Nobody is perfect (-:

    "Dummköpfe sind Denkerköpfen weit überlegen. Zahlenmäßig." Ernst Ferstl
  • RE: mousposition relativ zum view verändern

    Mach es anstatt vom Spieler abhängig von der View abhängig, dann sollte es gehen (wenn ich dich richtig verstanden habe). Du musst dann wahrscheinlich noch Variablen mit den alten Viewkoordinaten erstellen.

    Dragoon
    int (*x(*x(int))[5])(int*);
    Confused? Yes, it's C!
  • ne denke ich nicht, da man die maus ja dan imernoch in abhängigkeit der bildschirmkoordinaten (und nicht der view bzw. room koordinaten) ändert.
    das problem liegt ja beim
    window_mouse_set();
    ich bräuchte eine art room_mous_set() oder mouse_set() ect. am besten naürlich mouse_x+=4 aber die kan ich ja leider nicht ändern :(
    :) Nobody is perfect (-:

    "Dummköpfe sind Denkerköpfen weit überlegen. Zahlenmäßig." Ernst Ferstl
  • also, ich brauhe das für vollgendes:
    ich haben ein mänchen, dieses bewegt sich. nun können je nachdem wie weit die maus von dem mänchen entfernt ist unterschiedliche ereignisse stadtfinden. der abstand zur maus sollte aber nur verändertwerden wen sich die maus bewegt, und nicht wen sich das mänchen bewegt.

    mein spiel hat eine auflösung von 640*480. meine einestellte auflösung (desktopeinstellung) ist aber 1024*768. wen ich nun die window_mouse_get_x() bzw y benutze wird die bilschirmposition zurückgegeben. nicht die position der maus im room. folge ist das wen ich zb. die maus in die rechte obere ecke bewege die mouse_x position 640, die windows_mouse_get_x() aber 1024 ist. also in meinem fall genau das doppelte.
    wen ich nun follgendes mache:

    GML-Quellcode

    1. window_mouse_set(window_mouse_get_x+x-xprevious,window_mouse_get_y+y-yprevious);
    bewegt sich der curser schneller als das mänchen. (in meinem fall genau doppelt so schnell) aber auch nur wen sich das mänchen zb. in der mitte des raumes aufhält (sich der view bewegt). steht der vies still dan bewegt sich die maus langsamer als das mänchen (dafür habe ich noch keine erklärung gefunden).

    hui, das ist ja nun entwas lang geworden, sry.
    :) Nobody is perfect (-:

    "Dummköpfe sind Denkerköpfen weit überlegen. Zahlenmäßig." Ernst Ferstl
  • Mal gucken ob ichs jetzt richtig verstanden habe^^
    Wie wäre es wenn du die Maus mit display_mouse_set(x,y) immer in die mitte setzt und dann so etwas wie ein mouselookscript in Egoshootern benützt? So könnte das dann aussehen:

    GML-Quellcode

    1. obj_mousecursor.x+=display_mouse_get_x()-320;
    2. obj_mousecursor.y+=display_mouse_get_y()-240;
    3. display_mouse_set(320,240);

    Wobei du ein Objekt obj_mousecursor erstellen müsstest (oder einfach die Werte in Variablen speicherst).

    Dragoon
    int (*x(*x(int))[5])(int*);
    Confused? Yes, it's C!