@SafeVarargs @SuppressWarnings("varargs") public NToggle(String name, T...values) { for (T value : values) { this.values.add(value); } this.prefix = name + ": "; layer.events().connect(new Pointer.Listener() { @Override public void onStart (Pointer.Interaction iact) { set((valueIdx + 1) % NToggle.this.values.size()); } }); set(0); }
public ImageLayer createButton (String label, Runnable onClick) { ImageLayer layer = new ImageLayer(formatButton(label)); layer.events().connect(new Pointer.Listener() { @Override public void onStart (Pointer.Interaction iact) { onClick.run(); } }); return layer; } }
@Override public void init() { Image orange = game.assets.getImage("images/orange.png"); ImageLayer l1 = new ImageLayer(orange); game.rootLayer.addAt(l1.setScale(2).setRotation(FloatMath.PI/8), 50, 50); l1.events().connect(new Mover(l1).listener(game.input)); ImageLayer l2 = new ImageLayer(orange); game.rootLayer.addAt(l2.setScale(1.5f).setRotation(FloatMath.PI/4), 150, 50); l2.events().connect(new Mover(l2).listener(game.input)); Image mdb = game.assets.getRemoteImage("https://www.samskivert.com/images/headshot.jpg"); ImageLayer l3 = new ImageLayer(mdb); game.rootLayer.addAt(l3.setRotation(-FloatMath.PI/4), 50, 150); l3.events().connect(new Mover(l3).listener(game.input)); String l4url = "https://www.samskivert.com/images/2012/12/spellwood-app-icon.png"; game.net.req(l4url).execute().onSuccess(rsp -> { try { Image icon = rsp.payloadImage(new Scale(2)); ImageLayer l4 = new ImageLayer(icon); game.rootLayer.addAt(l4.setRotation(FloatMath.PI/4), 150, 150); l4.events().connect(new Mover(l4).listener(game.input)); } catch (Exception e) { game.log.warn("Failed to decode image: " + e); } }).onFailure(t -> game.log.warn("Failed to load image: " + l4url, t)); }
@Override public void init () { Canvas bgcanvas = game.graphics.createCanvas(WIDTH + 10, HEIGHT); bgcanvas.setFillColor(0xff808080); bgcanvas.fillRect(0, 0, WIDTH + 10, HEIGHT); ImageLayer bg = new ImageLayer(bgcanvas.toTexture()); Canvas knob = game.graphics.createCanvas(WIDTH, HWIDTH); knob.setFillColor(0xffffffff).fillRect(0, 0, WIDTH, HWIDTH); knob.setStrokeColor(0xff000000).drawLine(0, HWIDTH / 2, WIDTH, HWIDTH / 2); knob.setStrokeColor(0xffff0000).strokeRect(0, 0, WIDTH - 1, HWIDTH - 1); ImageLayer il = new ImageLayer(knob.toTexture()); il.setOrigin(0, HWIDTH / 2).setDepth(1).setTranslation(0, HEIGHT / 2); GroupLayer slider = new GroupLayer(); slider.add(bg); slider.add(il); game.rootLayer.addAt(slider, 25, 25); bg.events().connect(new Mouse.Listener() { @Override public void onWheel (Mouse.WheelEvent event, Mouse.Interaction iact) { float y = il.ty() + event.velocity; y = Math.max(0, Math.min(y, HEIGHT)); il.setTranslation(0, y); } }); } }
mouse.label.events().connect(new Mouse.Listener() { ImageLayer label = mouse.label; pointer.label.events().connect(new Pointer.Listener() { ImageLayer label = pointer.label; @Override public void onStart(Pointer.Interaction iact) { touch.label.events().connect(new Touch.Listener() { ImageLayer label = touch.label; @Override public void onStart(Touch.Interaction iact) {
click.events().connect(new Pointer.Listener() { @Override public void onStart (Pointer.Interaction iact) { if (_shaker != null) _shaker.complete(); square.setOrigin(25, 25); layer.addAt(square, 50, 300); square.events().connect(new Pointer.Listener() { @Override public void onStart (Pointer.Interaction iact) { square.setInteractive(false);