Page 1 of 1

Mausbewegung statt Pfeiltasten verwenden  Topic is solved

Posted: 26 Apr 2021, 07:07
by WallE92
Hallo :wave:

ich bräuchte eure Hilfe und zwar würde ich beim Zocken gerne die Mausbewegung statt den Pfeiltasten verwenden können, also dass die Maus als eine Art Joystick fungiert.

Habt ihr eine Idee, ob bzw. wie man das in AHK umsetzen könnte.

Bin für jeden Tipp dankbar!

Re: Mausbewegung statt Pfeiltasten verwenden

Posted: 26 Apr 2021, 07:40
by SYnCR
WallE92 wrote:
26 Apr 2021, 07:07
Hallo :wave:

ich bräuchte eure Hilfe und zwar würde ich beim Zocken gerne die Mausbewegung statt den Pfeiltasten verwenden können, also dass die Maus als eine Art Joystick fungiert.

Habt ihr eine Idee, ob bzw. wie man das in AHK umsetzen könnte.

Bin für jeden Tipp dankbar!
Hey - WallE92,

konnte es jetzt nicht testen - aber müsste so in der Art funktionieren.

Code: Select all

repeat(keys, delay := 80) {
	send % keys
	sleep % delay
}

loop {
	mousegetpos _x,_y
	wingetpos ,,,_w,_h
	while (_x * _y < 1250)
		repeat("{left}{up}")
	while (_x < 25) && (_y > (_h - 25))
		repeat("{left}{down}")
	while (_x > (_w - 25)) && (_y < 50)
		repeat("{right}{up}")
	while (_x > (_w - 25)) && (_y > (_h - 25))
		repeat("{right}{down}")
	while (_x < 25)
		repeat("{left}")
	while (_x > (_w - 25))
		repeat("{right}")
	while (_y < 50)
		repeat("{up}")
	while (_y > (_h - 25))
		repeat("{down}")
	sleep 200
}

Re: Mausbewegung statt Pfeiltasten verwenden

Posted: 26 Apr 2021, 12:35
by WallE92
SYnCR wrote:
26 Apr 2021, 07:40
WallE92 wrote:
26 Apr 2021, 07:07
Hallo :wave:

ich bräuchte eure Hilfe und zwar würde ich beim Zocken gerne die Mausbewegung statt den Pfeiltasten verwenden können, also dass die Maus als eine Art Joystick fungiert.

Habt ihr eine Idee, ob bzw. wie man das in AHK umsetzen könnte.

Bin für jeden Tipp dankbar!
Hey - WallE92,

konnte es jetzt nicht testen - aber müsste so in der Art funktionieren.

Code: Select all

repeat(keys, delay := 80) {
	send % keys
	sleep % delay
}

loop {
	mousegetpos _x,_y
	wingetpos ,,,_w,_h
	while (_x * _y < 1250)
		repeat("{left}{up}")
	while (_x < 25) && (_y > (_h - 25))
		repeat("{left}{down}")
	while (_x > (_w - 25)) && (_y < 50)
		repeat("{right}{up}")
	while (_x > (_w - 25)) && (_y > (_h - 25))
		repeat("{right}{down}")
	while (_x < 25)
		repeat("{left}")
	while (_x > (_w - 25))
		repeat("{right}")
	while (_y < 50)
		repeat("{up}")
	while (_y > (_h - 25))
		repeat("{down}")
	sleep 200
}
Erstmal vielen lieben Dank, dass für die Hilfe! Muss gesehen, hab zwar schon paar AHK Scripts geschrieben, aber für mich ist der Code trotzdem chinesisch. Momentan wird bei einem Mausklick eine Endlosschleife ausgelöst und die Taste {down} kriegt solange einen Impuls, bis es nicht weiter runter geht oder man das Script killt.
Allerdings reagiert es leider noch gar nicht auf meine Mausbewegung. Ne Idee woran das liegen könnte?
Danke!

Re: Mausbewegung statt Pfeiltasten verwenden

Posted: 27 Apr 2021, 01:05
by SYnCR
WallE92 wrote:
26 Apr 2021, 12:35
SYnCR wrote:
26 Apr 2021, 07:40
WallE92 wrote:
26 Apr 2021, 07:07
Hallo :wave:

ich bräuchte eure Hilfe und zwar würde ich beim Zocken gerne die Mausbewegung statt den Pfeiltasten verwenden können, also dass die Maus als eine Art Joystick fungiert.

Habt ihr eine Idee, ob bzw. wie man das in AHK umsetzen könnte.

Bin für jeden Tipp dankbar!
Hey - WallE92,

konnte es jetzt nicht testen - aber müsste so in der Art funktionieren.

Code: Select all

repeat(keys, delay := 80) {
	send % keys
	sleep % delay
}

loop {
	mousegetpos _x,_y
	wingetpos ,,,_w,_h
	while (_x * _y < 1250)
		repeat("{left}{up}")
	while (_x < 25) && (_y > (_h - 25))
		repeat("{left}{down}")
	while (_x > (_w - 25)) && (_y < 50)
		repeat("{right}{up}")
	while (_x > (_w - 25)) && (_y > (_h - 25))
		repeat("{right}{down}")
	while (_x < 25)
		repeat("{left}")
	while (_x > (_w - 25))
		repeat("{right}")
	while (_y < 50)
		repeat("{up}")
	while (_y > (_h - 25))
		repeat("{down}")
	sleep 200
}
Erstmal vielen lieben Dank, dass für die Hilfe! Muss gesehen, hab zwar schon paar AHK Scripts geschrieben, aber für mich ist der Code trotzdem chinesisch. Momentan wird bei einem Mausklick eine Endlosschleife ausgelöst und die Taste {down} kriegt solange einen Impuls, bis es nicht weiter runter geht oder man das Script killt.
Allerdings reagiert es leider noch gar nicht auf meine Mausbewegung. Ne Idee woran das liegen könnte?
Danke!

hallo WallE92,

habe gestern das mal kurz mit diablo3 getestet.
Ist jetzt auf Full-HD Rez eingestellt.

Die Maus wird in 4 Bereiche des Monitors getrackt und je nach Bereich wird beim halten der F1-Taste (WASD) repeatet.

Hoffe das hilft dir.
MFG SYnCR

Code: Select all

; get current mouse area and send correspond key
; press F1 and move mouse

CoordMode, Mouse, Screen
CoordMode, ToolTip, Screen

; for debug
SetTimer, tm_get_area, 100

; center position define(memo: my machine is 1920/1080)
pixx := 1920
pixy := 1080
basex := pixx/2
basey := pixy/2
return

tm_get_area:
    get_area()
return

get_area() {
    Global basex, basey

    MouseGetPos, cx, cy
    cur_rad := Atan((basey-cy)/(basex-cx)) * 180 / 3.141592653589793
    if (cx >= basex) {
        cur_rad360 := cur_rad + 90
    } else {
        cur_rad360 := cur_rad + 270
    }
;    ToolTip, %cur_rad360%, basex, basey+20, 1

    dx := (basex-cx)
    dy := (basey-cy)
    cur_area := get_area_id(cur_rad360)
    ToolTip, Area: %cur_area%, basex, basey, 2
    return cur_area
}

get_area_id(rad) {
    if (rad < 60) {
        return 1
    }
    if (rad < 120) {
        return 2
    }
    if (rad < 240) {
        return 3
    }
    if (rad < 300) {
        return 4
    }
    return 1
}

F1:: ; <-- fixed
    area := get_area()
    if (area=1)
        key=w
    if (area=2)
        key=d
    if (area=3)
        key=s
    if (area=4)
        key=a
    Send, {%key% Down}
    ; Release key previous pressed
    if (prevkey != key) {
        Send, {%prevkey% Up}
        prevkey := key
    }
return

F1 Up::
    Send, {%prevkey% Up}
return
[Mod edit: quote tags replaced with [code][/code] tags.]

Re: Mausbewegung statt Pfeiltasten verwenden

Posted: 27 Apr 2021, 06:46
by Rohwedder
Hallo,
entweder die jeweilige Taste nur kurz drücken:

Code: Select all

#Persistent
SetTimer, Maus, 100
Maus:
MouseGetPos, X1, Y1
IF Abs(DX:=X1-X2) >= Abs(DY:=Y1-Y2)
	Send,% DX? DX>0? "d":"a":
Else
	Send,% DY>0? "s":"w"
X2 := X1, Y2 := Y1
Return
oder gedrückt halten:

Code: Select all

#Persistent
SetTimer, Maus, 100
Maus:
MouseGetPos, X1, Y1
IF Abs(DX:=X1-X2) >= Abs(DY:=Y1-Y2)
	UpDown(DX? DX>0? "d":"a":)
Else
	UpDown(DY>0? "s":"w")
X2 := X1, Y2 := Y1
Return
UpDown(Key2)
{
	static Key1
	IF (Key2 <> Key1)
	{
		Send, {%Key1% up}{%Key2% down}
		Key1 := Key2
	}
}

Re: Mausbewegung statt Pfeiltasten verwenden

Posted: 27 Apr 2021, 11:42
by WallE92
SYnCR wrote:
27 Apr 2021, 01:05
WallE92 wrote:
26 Apr 2021, 12:35
SYnCR wrote:
26 Apr 2021, 07:40
WallE92 wrote:
26 Apr 2021, 07:07
Hallo :wave:

ich bräuchte eure Hilfe und zwar würde ich beim Zocken gerne die Mausbewegung statt den Pfeiltasten verwenden können, also dass die Maus als eine Art Joystick fungiert.

Habt ihr eine Idee, ob bzw. wie man das in AHK umsetzen könnte.

Bin für jeden Tipp dankbar!
Hey - WallE92,

konnte es jetzt nicht testen - aber müsste so in der Art funktionieren.

Code: Select all

repeat(keys, delay := 80) {
	send % keys
	sleep % delay
}

loop {
	mousegetpos _x,_y
	wingetpos ,,,_w,_h
	while (_x * _y < 1250)
		repeat("{left}{up}")
	while (_x < 25) && (_y > (_h - 25))
		repeat("{left}{down}")
	while (_x > (_w - 25)) && (_y < 50)
		repeat("{right}{up}")
	while (_x > (_w - 25)) && (_y > (_h - 25))
		repeat("{right}{down}")
	while (_x < 25)
		repeat("{left}")
	while (_x > (_w - 25))
		repeat("{right}")
	while (_y < 50)
		repeat("{up}")
	while (_y > (_h - 25))
		repeat("{down}")
	sleep 200
}
Erstmal vielen lieben Dank, dass für die Hilfe! Muss gesehen, hab zwar schon paar AHK Scripts geschrieben, aber für mich ist der Code trotzdem chinesisch. Momentan wird bei einem Mausklick eine Endlosschleife ausgelöst und die Taste {down} kriegt solange einen Impuls, bis es nicht weiter runter geht oder man das Script killt.
Allerdings reagiert es leider noch gar nicht auf meine Mausbewegung. Ne Idee woran das liegen könnte?
Danke!

hallo WallE92,

habe gestern das mal kurz mit diablo3 getestet.
Ist jetzt auf Full-HD Rez eingestellt.

Die Maus wird in 4 Bereiche des Monitors getrackt und je nach Bereich wird beim halten der F1-Taste (WASD) repeatet.

Hoffe das hilft dir.
MFG SYnCR

Code: Select all

; get current mouse area and send correspond key
; press F1 and move mouse

CoordMode, Mouse, Screen
CoordMode, ToolTip, Screen

; for debug
SetTimer, tm_get_area, 100

; center position define(memo: my machine is 1920/1080)
pixx := 1920
pixy := 1080
basex := pixx/2
basey := pixy/2
return

tm_get_area:
    get_area()
return

get_area() {
    Global basex, basey

    MouseGetPos, cx, cy
    cur_rad := Atan((basey-cy)/(basex-cx)) * 180 / 3.141592653589793
    if (cx >= basex) {
        cur_rad360 := cur_rad + 90
    } else {
        cur_rad360 := cur_rad + 270
    }
;    ToolTip, %cur_rad360%, basex, basey+20, 1

    dx := (basex-cx)
    dy := (basey-cy)
    cur_area := get_area_id(cur_rad360)
    ToolTip, Area: %cur_area%, basex, basey, 2
    return cur_area
}

get_area_id(rad) {
    if (rad < 60) {
        return 1
    }
    if (rad < 120) {
        return 2
    }
    if (rad < 240) {
        return 3
    }
    if (rad < 300) {
        return 4
    }
    return 1
}

F1:: ; <-- fixed
    area := get_area()
    if (area=1)
        key=w
    if (area=2)
        key=d
    if (area=3)
        key=s
    if (area=4)
        key=a
    Send, {%key% Down}
    ; Release key previous pressed
    if (prevkey != key) {
        Send, {%prevkey% Up}
        prevkey := key
    }
return

F1 Up::
    Send, {%prevkey% Up}
return
[Mod edit: quote tags replaced with [code][/code] tags.]

Es klappt! Vielen lieben Dank! :twisted: Hab den F1-Befehl jetzt noch in einen Loop gepackt.
Jetzt müsst ich nur noch fahren können damit... :think: