Schlaubischlump / LocationSimulator

MacOS application to spoof / fake / mock your iOS / iPadOS or iPhoneSimulator device location. WatchOS and TvOS are partially supported.
https://schlaubischlump.github.io/LocationSimulator/
GNU General Public License v3.0
2.5k stars 192 forks source link

[Feature] Change movement control behaviour #119

Closed KXTOD closed 2 years ago

KXTOD commented 2 years ago

Describe the bug Weird behaviour from "move compass".

To Reproduce Steps to reproduce the behavior: 1) Connect device over network 2) Teleport to random location 3) Switch to drive mode 4) Compass switches to previous changes

Screenshots

https://user-images.githubusercontent.com/76398254/166123124-b55382a0-3572-436f-9171-13061c16b448.mov

Desktop (please complete the following information):

Smartphone (please complete the following information):

Schlaubischlump commented 2 years ago

Edit: Just to clarify: This has nothing to do with drive mode. It will happen in every other mode as well.

It is expected behaviour, but unintuitive... I thought about reworking the control to work more naturally.

How it now works is basically like this:

Divide the movement control circle in four squares:

  A | B
 -------  <- middle line
  C | D

A: 0 to -90 degree B: 0 to 90 degree C: -90 to -180 degree D: 90 to 180 degree

If the heading arrow is in the upper half of the circle (meaning in A or B), then you use the up arrow to go forward. If you use the down array, while in A or B, the direction will be flipped. If the arrow is in C or D and you use up, it will be flipped. If you use down it will not be flipped. In short: If your heading arrow is in A or B use the up arrow, otherwise use the down arrow. A little bit hard to explain...

Why does it behave like this you might ask ?

I wanted to use the left and right arrow to define the orientation. This part is intuitive I think. Now assume you position the heading arrow to point up (aka don't move it at all). You press the up arrow. You expect to move up, which it does. What do you expect if you press the down arrow ? I would expect to move down. That means the heading must be flipped, because otherwise I would still move in the direction of heading, meaning upwards. This is why you get the behaviour you are seeing here. I somehow have to decide when to flip and when not to flip. So I decide to flip whenever the heading arrow is below the middle line and the up arrow is pressed and to flip if the heading arrow is above the middle line and the down arrow is pressed.

How I plan to rework it some point in the future:

You can not change the orientation. You press up to move up, down to down, left to move left and right to move right. This is definitely more intuitive. The problem: You lose the fine grained control when navigating with the arrow keys.

KXTOD commented 2 years ago

Ahhh okay sorry I misunderstood then. I see why you implemented it like this but for me it does not really feel natural. Still thanks for the explanation.

Schlaubischlump commented 2 years ago

Don't be sorry, I know its confusing ^^ Do you find the proposed change more intuitive or do you have any other idea how it should work ? I'm open to input.

I keep the issue open, since I should definitely change the default behaviour.

Schlaubischlump commented 2 years ago

I changed the default behaviour to the proposed one. You can still change the behaviour back in the settings. I'll close the issue for now.

I'll upload a new release tomorrow or the next week.

KXTOD commented 2 years ago

Yup this new release does indeed make moving more understandable. For future releases I would suggest adding 360 degrees movement. At the moment we can only walk in 4 directions, however when there's an oblique road things get a bit annoying. I'm not sure if this is even possible to develop but it's just an idea. Anyways thanks for implementing my previous ideas.

Schlaubischlump commented 2 years ago

There are still two ways to accomplish this.

  1. Select the old behavior in the settings

Or if you don't want to use the old behavior:

  1. Use the mouse to click on the outer circle to change the heading. Short click in the middle on the walking person to move in the direction of heading.