litchie / exult-ios

Exult ( http://exult.sourceforge.net/ )
GNU General Public License v2.0
42 stars 8 forks source link

how to implement mouse right click behavior #2

Open litchie opened 9 years ago

litchie commented 9 years ago

By default, all touches will be translated into mouse events (left button). But U7 needs right click to navigate around. I am thinking that there will be a toggle button at the bottom of screen. When you turn it on, touch events will be treated as right clicks.

Another question: is mouse over event important in game playing?

DominusExult commented 9 years ago

I was thinking that at least on the ipad (and mini) size it would perhaps make sense to implement an overlay d-pad to navigate instead of the left click finger. And maybe an option to toggle between original (touch events and button to switch) and new way (overlay dpad and right click touch event)? What do you think of that? There is also the issue that the movement speed is normally dependent of how far away the cursor is "dragged" from the Avatar. Maybe another toggle button for movement speed?

DominusExult commented 9 years ago

AFAIK there is no mouse over event, btw.

litchie commented 9 years ago

If we got DPad, then right click touch isn't really necessary, right?

DominusExult commented 9 years ago

I'm probably confusing either left or right click but the one to move is not needed anymore. I think...

Am 22.01.2015 um 14:41 schrieb Chaoji Li notifications@github.com:

If we got DPad, then right click touch isn't really necessary, right?

— Reply to this email directly or view it on GitHub.

litchie commented 9 years ago

The latest build has a transparent dpad on the right side of screen.

DominusExult commented 9 years ago

After playing a bit, I wonder if it can be done a bit different (while keeping the dpad):

DominusExult commented 9 years ago

probably something like what you did in Dospad https://github.com/litchie/dospad/commit/abd950196792df7dfe3ddfa1db9000adb12aba66

litchie commented 9 years ago

I agree, double tap seems to be a really good way to work around this problem, a life saver for finding path.

DominusExult commented 9 years ago

After having my 12 years old nephew play a bit, it's clear that my above movement ideas are the way to go besides the dpad. He really struggled an expected there to be some kind of one finger movement.

(He also quickly lost interest because he couldn't kill Iolo right away, nor an unlocked door and the guards made short work of him... Also "reading all this English stuff? Noooooo waaaaaaayyyyyy!")

litchie commented 9 years ago

double tap as right click? Will try to port that over.

DominusExult commented 9 years ago

And is moving by holding down the finger feasible?

litchie commented 9 years ago

Currently holding down a finger is like holding the mouse left button. Technically it may be possible if we want to interpret short clicks as left button, and long holds as right button. But I am not sure that it won't cause other problems.

DominusExult commented 9 years ago

"I don't see any possible problem!" Famous last words on the Titanic ;) It might be worth a shot, though.

DominusExult commented 7 years ago

GemRB is using touch events for movement, see https://github.com/gemrb/gemrb/blob/master/gemrb/plugins/SDLVideo/SDL20Video.cpp#L475

DominusExult commented 6 years ago

@litchie the more and more I use Exult on iOS, it proves that the movement via the d-pad and passing on the numpad keys to move the player is not the best solution. It works somewhat, and with 770fa3c (using code of your Dospad project) it has become much better. But even better would be: A joypad that behaves like mousemovement. In Exult when you move the player through the mouse, the center is the middle of the screen, the player, and then he moves in the direction you move the mouse while holding down the right mouse button. The further away the mouse from the center, the faster he goes. So that sounds as if that could work. When you touch the joypad, the right mouse button is emulated and then it just behaves like it normally does, the further away from the middle of the joypad, the faster the player moves. Looking at the code of Dospad, I think you could make this happen. For me it would take another two years of staring at code to make it somewhat happen...