Search in sources :

Example 1 with Events

use of playn.core.Events in project playn by threerings.

the class IOSTouch method toTouchEvents.

private Event.Impl[] toTouchEvents(NSSet touches, UIEvent event) {
    final Event.Impl[] events = new Event.Impl[Convert.ToInt32(touches.get_Count())];
    touches.Enumerate(new NSSetEnumerator(new NSSetEnumerator.Method() {

        public void Invoke(NSObject obj, boolean[] stop) {
            UITouch touch = (UITouch) obj;
            PointF loc = touch.LocationInView(touch.get_View());
            // transform the point based on our current scale
            IPoint xloc = graphics.transformTouch(loc.get_X(), loc.get_Y());
            // on iOS the memory address of the UITouch object is the unique id
            int id = touch.get_Handle().ToInt32();
            events[_idx++] = new Event.Impl(new Events.Flags.Impl(), touch.get_Timestamp() * 1000, xloc.x(), xloc.y(), id);
            stop[0] = false;
        }

        private int _idx = 0;
    }));
    return events;
}
Also used : TouchImpl(playn.core.TouchImpl) NSObject(cli.MonoTouch.Foundation.NSObject) Events(playn.core.Events) NSSetEnumerator(cli.MonoTouch.Foundation.NSSetEnumerator) PointF(cli.System.Drawing.PointF) UIEvent(cli.MonoTouch.UIKit.UIEvent) IPoint(pythagoras.f.IPoint) UITouch(cli.MonoTouch.UIKit.UITouch) IPoint(pythagoras.f.IPoint)

Example 2 with Events

use of playn.core.Events in project playn by threerings.

the class RoboTouch method toTouchEvents.

private Event.Impl[] toTouchEvents(NSSet<UITouch> touches, UIEvent event) {
    final Event.Impl[] events = new Event.Impl[touches.size()];
    int idx = 0;
    for (UITouch touch : touches) {
        CGPoint loc = touch.getLocationInView(touch.getView());
        // transform the point based on our current scale
        IPoint xloc = platform.graphics().transformTouch((float) loc.getX(), (float) loc.getY());
        // on iOS the memory address of the UITouch object is the unique id
        int id = (int) touch.getHandle();
        events[idx++] = new Event.Impl(new Events.Flags.Impl(), touch.getTimestamp() * 1000, xloc.x(), xloc.y(), id);
    }
    return events;
}
Also used : TouchImpl(playn.core.TouchImpl) Events(playn.core.Events) CGPoint(org.robovm.apple.coregraphics.CGPoint) UIEvent(org.robovm.apple.uikit.UIEvent) IPoint(pythagoras.f.IPoint) UITouch(org.robovm.apple.uikit.UITouch) IPoint(pythagoras.f.IPoint) CGPoint(org.robovm.apple.coregraphics.CGPoint)

Aggregations

Events (playn.core.Events)2 TouchImpl (playn.core.TouchImpl)2 IPoint (pythagoras.f.IPoint)2 NSObject (cli.MonoTouch.Foundation.NSObject)1 NSSetEnumerator (cli.MonoTouch.Foundation.NSSetEnumerator)1 UIEvent (cli.MonoTouch.UIKit.UIEvent)1 UITouch (cli.MonoTouch.UIKit.UITouch)1 PointF (cli.System.Drawing.PointF)1 CGPoint (org.robovm.apple.coregraphics.CGPoint)1 UIEvent (org.robovm.apple.uikit.UIEvent)1 UITouch (org.robovm.apple.uikit.UITouch)1