Package tripleplay.demo.anim

Source Code of tripleplay.demo.anim.FlickerDemo

//
// Triple Play - utilities for use in PlayN-based games
// Copyright (c) 2011-2014, Three Rings Design, Inc. - All rights reserved.
// http://github.com/threerings/tripleplay/blob/master/LICENSE

package tripleplay.demo.anim;

import pythagoras.f.Point;

import playn.core.CanvasImage;
import playn.core.Font;
import playn.core.GroupLayer;
import playn.core.ImageLayer;
import playn.core.Layer;
import playn.core.util.Clock;
import static playn.core.PlayN.*;

import tripleplay.anim.Flicker;
import tripleplay.demo.DemoScreen;
import tripleplay.ui.Group;
import tripleplay.util.StyledText;
import tripleplay.util.TextStyle;

/**
* Demonstrates the flicker.
*/
public class FlickerDemo extends DemoScreen
{
    @Override protected String name () {
        return "Flicker";
    }
    @Override protected String title () {
        return "Flicker Demo";
    }

    @Override protected Group createIface () {
        final int width = 400;
        _group.setHitTester(new Layer.HitTester() {
            public Layer hitTest (Layer layer, Point p) {
                return (p.x < width) ? layer : null;
            }
        });
        _group.addListener(_flicker);
        layer.addAt(_group, (width()-width)/2, 0);

        // add a bunch of image layers to our root layer
        float y = 0;
        for (int ii = 0; ii < IMG_COUNT; ii++) {
            CanvasImage image = graphics().createImage(width, IMG_HEIGHT);
            StringBuffer text = new StringBuffer();
            for (int tt = 0; tt < 25; tt++) text.append(ii+1);
            StyledText.span(text.toString(), TEXT).render(image.canvas(), 0, 0);
            ImageLayer layer = graphics().createImageLayer(image);
            _group.addAt(layer, 0, y);
            y += layer.scaledHeight();
        }

        return null;
    }

    @Override public void paint (Clock clock) {
        super.paint(clock);
        _flicker.paint(clock);
        _group.setTy(_flicker.position);
    }

    protected GroupLayer _group = graphics().createGroupLayer();
    protected Flicker _flicker = new Flicker(0, height()-IMG_HEIGHT*IMG_COUNT, 0) {
        @Override protected float friction () { return 0.001f; }
    };

    protected static final float IMG_HEIGHT = 100;
    protected static final int IMG_COUNT = 20;
    protected static final TextStyle TEXT = new TextStyle().
        withFont(graphics().createFont("Helvetiva", Font.Style.PLAIN, 72));
}
TOP

Related Classes of tripleplay.demo.anim.FlickerDemo

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.