Search in sources :

Example 1 with MotionEvent

use of playn.core.Mouse.MotionEvent in project playn by threerings.

the class PointerMouseTouchTest method init.

@Override
public void init() {
    float y = 20, x = 20;
    preventDefault = new Toggle("Prevent Default");
    graphics().rootLayer().addAt(preventDefault.layer, x, y);
    x += preventDefault.layer.image().width() + 5;
    capture = new Toggle("Capture");
    graphics().rootLayer().addAt(capture.layer, x, y);
    x += capture.layer.image().width() + 5;
    propagate = new NToggle<String>("Propagation", "Off", "On", "On (stop)") {

        @Override
        public void set(int value) {
            super.set(value);
            platform().setPropagateEvents(value != 0);
        }
    };
    graphics().rootLayer().addAt(propagate.layer, x, y);
    y += propagate.layer.image().height() + 5;
    x = 20;
    float boxWidth = 300, boxHeight = 110;
    final Box mouse = new Box("Mouse", 0xffff8080, boxWidth, boxHeight);
    graphics().rootLayer().addAt(mouse.layer, x, y);
    y += mouse.layer.height() + 5;
    final Box pointer = new Box("Pointer", 0xff80ff80, boxWidth, boxHeight);
    graphics().rootLayer().addAt(pointer.layer, x, y);
    y += pointer.layer.height() + 5;
    final Box touch = new Box("Touch", 0xff8080ff, boxWidth, boxHeight);
    graphics().rootLayer().addAt(touch.layer, x, y);
    y = mouse.layer.ty();
    x += touch.layer.width() + 5;
    // setup the logger and its layer
    y += createLabel("Event Log", 0, x, y).height();
    logger = new TextLogger(375, 15, logFormat);
    logger.layer.setTranslation(x, y);
    graphics().rootLayer().add(logger.layer);
    y += logger.layer.height() + 5;
    // setup the motion logger and its layer
    y += createLabel("Motion Log", 0, x, y).height();
    motionLabel = new TextMapper(375, 6, logFormat);
    motionLabel.layer.setTranslation(x, y);
    graphics().rootLayer().add(motionLabel.layer);
    // add mouse layer listener
    mouse.label.addListener(new Mouse.LayerListener() {

        ImageLayer label = mouse.label;

        @Override
        public void onMouseDown(ButtonEvent event) {
            _lstart = label.transform().translation();
            _pstart = new Vector(event.x(), event.y());
            label.setAlpha(0.5f);
            modify(event);
            logger.log(describe(event, "mouse down"));
        }

        @Override
        public void onMouseDrag(MotionEvent event) {
            Vector delta = new Vector(event.x(), event.y()).subtractLocal(_pstart);
            label.setTranslation(_lstart.x + delta.x, _lstart.y + delta.y);
            modify(event);
            motionLabel.set("mouse drag", describe(event, ""));
        }

        @Override
        public void onMouseUp(ButtonEvent event) {
            label.setAlpha(1.0f);
            modify(event);
            logger.log(describe(event, "mouse up"));
        }

        @Override
        public void onMouseMove(MotionEvent event) {
            modify(event);
            motionLabel.set("mouse move", describe(event, ""));
        }

        @Override
        public void onMouseOver(MotionEvent event) {
            modify(event);
            logger.log(describe(event, "mouse over"));
        }

        @Override
        public void onMouseOut(MotionEvent event) {
            modify(event);
            logger.log(describe(event, "mouse out"));
        }

        @Override
        public void onMouseWheelScroll(WheelEvent event) {
            modify(event);
            logger.log(describe(event, "mouse wheel"));
        }

        protected Vector _lstart, _pstart;
    });
    // add mouse layer listener to parent
    mouse.layer.addListener(new Mouse.LayerListener() {

        @Override
        public void onMouseDown(ButtonEvent event) {
            logger.log(describe(event, "parent mouse down"));
        }

        @Override
        public void onMouseDrag(MotionEvent event) {
            motionLabel.set("parent mouse drag", describe(event, ""));
        }

        @Override
        public void onMouseUp(ButtonEvent event) {
            logger.log(describe(event, "parent mouse up"));
        }

        @Override
        public void onMouseMove(MotionEvent event) {
            motionLabel.set("parent mouse move", describe(event, ""));
        }

        @Override
        public void onMouseOver(MotionEvent event) {
            logger.log(describe(event, "parent mouse over"));
        }

        @Override
        public void onMouseOut(MotionEvent event) {
            logger.log(describe(event, "parent mouse out"));
        }

        @Override
        public void onMouseWheelScroll(WheelEvent event) {
            logger.log(describe(event, "parent mouse wheel"));
        }
    });
    // add pointer layer listener
    pointer.label.addListener(new Pointer.Listener() {

        ImageLayer label = pointer.label;

        @Override
        public void onPointerStart(Event event) {
            _lstart = label.transform().translation();
            _pstart = new Vector(event.x(), event.y());
            label.setAlpha(0.5f);
            modify(event);
            logger.log(describe(event, "pointer start"));
        }

        @Override
        public void onPointerDrag(Event event) {
            Vector delta = new Vector(event.x(), event.y()).subtractLocal(_pstart);
            label.setTranslation(_lstart.x + delta.x, _lstart.y + delta.y);
            modify(event);
            motionLabel.set("pointer drag", describe(event, ""));
        }

        @Override
        public void onPointerEnd(Event event) {
            label.setAlpha(1.0f);
            modify(event);
            logger.log(describe(event, "pointer end"));
        }

        @Override
        public void onPointerCancel(Event event) {
            label.setAlpha(1.0f);
            modify(event);
            logger.log(describe(event, "pointer cancel"));
        }

        protected Vector _lstart, _pstart;
    });
    // add pointer listener for parent layer
    pointer.layer.addListener(new Pointer.Listener() {

        double start;

        @Override
        public void onPointerStart(Event event) {
            logger.log(describe(event, "parent pointer start"));
            start = event.time();
        }

        @Override
        public void onPointerDrag(Event event) {
            motionLabel.set("parent pointer drag", describe(event, ""));
            if (capture.value() && event.time() - start > 2000) {
                event.capture();
            }
        }

        @Override
        public void onPointerEnd(Event event) {
            logger.log(describe(event, "parent pointer end"));
        }

        @Override
        public void onPointerCancel(Event event) {
            logger.log(describe(event, "parent pointer cancel"));
        }
    });
    // add touch layer listener
    touch.label.addListener(new Touch.LayerListener() {

        ImageLayer label = touch.label;

        @Override
        public void onTouchStart(Touch.Event event) {
            _lstart = label.transform().translation();
            _pstart = new Vector(event.x(), event.y());
            label.setAlpha(0.5f);
            modify(event);
            logger.log(describe(event, "touch start"));
        }

        @Override
        public void onTouchMove(Touch.Event event) {
            Vector delta = new Vector(event.x(), event.y()).subtractLocal(_pstart);
            label.setTranslation(_lstart.x + delta.x, _lstart.y + delta.y);
            modify(event);
            motionLabel.set("touch move", describe(event, ""));
        }

        @Override
        public void onTouchEnd(Touch.Event event) {
            label.setAlpha(1.0f);
            modify(event);
            logger.log(describe(event, "touch end"));
        }

        @Override
        public void onTouchCancel(Touch.Event event) {
            label.setAlpha(1.0f);
            modify(event);
            logger.log(describe(event, "touch cancel"));
        }

        protected Vector _lstart, _pstart;
    });
    // add touch parent layer listener
    touch.layer.addListener(new Touch.LayerListener() {

        @Override
        public void onTouchStart(Touch.Event event) {
            logger.log(describe(event, "parent touch start"));
        }

        @Override
        public void onTouchMove(Touch.Event event) {
            motionLabel.set("parent touch move", describe(event, ""));
        }

        @Override
        public void onTouchEnd(Touch.Event event) {
            logger.log(describe(event, "parent touch end"));
        }

        @Override
        public void onTouchCancel(Touch.Event event) {
            logger.log(describe(event, "parent touch cancel"));
        }
    });
}
Also used : WheelEvent(playn.core.Mouse.WheelEvent) ImageLayer(playn.core.ImageLayer) Pointer(playn.core.Pointer) Touch(playn.core.Touch) Point(pythagoras.f.Point) MotionEvent(playn.core.Mouse.MotionEvent) Mouse(playn.core.Mouse) ButtonEvent(playn.core.Mouse.ButtonEvent) NToggle(playn.tests.core.TestsGame.NToggle) Toggle(playn.tests.core.TestsGame.Toggle) ButtonEvent(playn.core.Mouse.ButtonEvent) WheelEvent(playn.core.Mouse.WheelEvent) Event(playn.core.Pointer.Event) MotionEvent(playn.core.Mouse.MotionEvent) Vector(pythagoras.f.Vector)

Aggregations

ImageLayer (playn.core.ImageLayer)1 Mouse (playn.core.Mouse)1 ButtonEvent (playn.core.Mouse.ButtonEvent)1 MotionEvent (playn.core.Mouse.MotionEvent)1 WheelEvent (playn.core.Mouse.WheelEvent)1 Pointer (playn.core.Pointer)1 Event (playn.core.Pointer.Event)1 Touch (playn.core.Touch)1 NToggle (playn.tests.core.TestsGame.NToggle)1 Toggle (playn.tests.core.TestsGame.Toggle)1 Point (pythagoras.f.Point)1 Vector (pythagoras.f.Vector)1