1 decade ago
by Philip
Hej,
just published the multitouch plugin:
https://github.com/Houly/ImpactMultiTouch
It's pretty much build around what we needed for Steamclash, but this should work in other cases, too.
Right on. Be sure to submit it to
http://www.pointofimpactjs.com also! ;)
1 decade ago
by mimik
so how do i bind it in my main.js=
with something like?
ig.keydown.bind( 'touchstuff mouse' );
ig.input.touches.mouse.state();*/
Got any example on how to use it on main.js
Got kinda confused when i looked at button.js class and the source.
thanks
1 decade ago
by Philip
hum, okey. Maybe this needs a little more explanation
I tried to implement it like it is optional.. All you have to do is bind a click action on Mouse 1 an you are set. Like this
ig.input.bind( ig.KEY.MOUSE1, 'click' );
There are a few ways to handle touches now.
There is the old way with
ig.input.state( 'click' )
or for the position
ig.input.mouse.x
This is the way impact normally handles mouse and touch events and this still works.
But the nature of multitouch is in multiple states and positions.If you want to handle those, you have to look at
ig.input.touches
which at the moment is an object. This could be optimized as an array, but for the sake of less code I used an object.
Just iterate over it with
for ( var t in ig.input.touches )
and you have all the states and positons of the currently active touches. A touch object has the following attributs:
{
x: the x Positon,
y: the y Position,
state: the state of the touch. State can be up or down
id: the id of the touch
}
Normally when a touchup happens, the touch gets removed fromt the list. But only after the current game loop finshes. So to be sure, you have to check the state.
I'm sorry that htis is a little bit more complicated, but handling multiple touches is more complicated than one touch. I don't think this can be that much easier.
I hope this helped.
1 decade ago
by mimik
thanks for taking the time to explain a little more.
For testing, did you make the mouse same as touch or did i just read the src wrong?
1 decade ago
by Philip
The mouse position is the same as the position of a touch. Which touch i can&039;t say, depends on the system. So if you just need single touch, this plugin still works with #ig.input.mouse
1 decade ago
by Joncom
Wanted to thank you Philip for creating this plugin. It's very useful!
This works very well for 2 touches. Is it possible to capture more than 2 simultaneous touches?
1 decade ago
by Philip
Hum, just looked into this. It works fine for me. At least with the test code i wrote back then, the rectangles are drawn correctly for every finger that touches the screen.
I optimized the code a tiny little bit, but that shouldn't help with your problem.
1 decade ago
by Joncom
Ran two different tests using mobile Safari:
Oiriginal iPad (iOS 4.3.3) picks up no more than 2 touches.
iPod Touch 5th Gen (iOS 6.1) picks no more than 5 touches.
By the way, there was a scaling issue which made your plugin unusable when scale was not equal to 1.
Forked your repo, fixed the scaling issue, and made a pull request.
1 decade ago
by Philip
I have an original iPad, too, but with iOS 5.1.1. maybe that is an problem with the iOS Version? Can't think of another reason.
I get up to 10 touches an the iPad, must ask another person to help me find the real maximum, but I don't have more than 10 finger :)
There is some weird behavior on my iPhone (iOS 6.1.2) where after 5 touches the old ones don't go away. I will look into that.
And thanks for the pull request, i will merge that :)
1 decade ago
by Philip
Hum, I did some testing and it looks like it's not really save to use more than 2 touches on the iPhone. With more than 2 touches I get inconsistent behavior. Like moving of touches where my finger doesn't move and even touchup and touchdown events.
I will look into this, but not right now and maybe not the next weeks cause IU have a shitload of work to do. So, if you figure something out, I will happily merge that into the repo
10 years ago
by Krisjet
Tried out this plugin now for one of my projects, and I'm not registering any touches using the old ig.input.pressed('click') method anymore. Anyone know if this is compatible with newer versions of Impact?
Page 1 of 1
« first
« previous
next ›
last »