protected Texture (Symbol symbol) { _layer = new ImageLayer(symbol.tile); _layer.setOrigin(symbol.origin.x(), symbol.origin.y()); _symbol = symbol; }
player1.setOrigin(phwidth, phheight); game.rootLayer.addAt(player1, 100, 100); ImageLayer player2 = new ImageLayer(princess.createTexture(MIPMAPPED)); player2.setOrigin(phwidth, phheight); game.rootLayer.addAt(player2, 250, 100); slayer1.setOrigin(shwidth, shheight); game.rootLayer.addAt(slayer1, 100, 250); ImageLayer slayer2 = new ImageLayer(star.createTexture(MIPMAPPED)); slayer2.setOrigin(shwidth, shheight); game.rootLayer.addAt(slayer2, 250, 250);
protected Entity createBullet (float x, float y, float vx, float vy, float angle, int exps) { Entity bullet = create(true); bullet.add(type, sprite, opos, pos, vel, radius, expires); Canvas canvas = graphics().createCanvas(5, 2); canvas.setFillColor(0xFFFFFFFF).fillRect(0, 0, 5, 2); ImageLayer layer = new ImageLayer(canvas.toTexture()); layer.setOrigin(2.5f, 1); layer.setRotation(angle); int id = bullet.id; type.set(id, BULLET); sprite.set(id, layer); opos.set(id, x, y); pos.set(id, x, y); vel.set(id, vx, vy); radius.set(id, 2); expires.set(id, exps); return bullet; }
protected Entity createAsteroid (Size sz, float x, float y, float vx, float vy) { Entity ast = create(true); ast.add(type, size, sprite, opos, pos, vel, spin, radius); float side = sz.size; int iidx = rando.getInt(8); float ah = asteroids.height(); ImageLayer layer = new ImageLayer(asteroids.region(iidx*ah, 0, ah, ah)); layer.setOrigin(ah/2, ah/2); layer.setScale(side/ah); layer.setRotation(rando.getFloat(MathUtil.TAU)); int id = ast.id; type.set(id, ASTEROID); size.set(id, sz); sprite.set(id, layer); spin.set(id, rando.getInRange(-MAXSPIN, MAXSPIN)); opos.set(id, x, y); pos.set(id, x, y); vel.set(id, vx, vy); radius.set(id, side*0.425f); return ast; }
protected Entity createShip (float x, float y) { Entity ship = create(true); ship.add(type, sprite, opos, pos, vel, spin, radius); Canvas canvas = graphics().createCanvas(30, 20); Path path = canvas.createPath(); path.moveTo(0, 0).lineTo(30, 10).lineTo(0, 20).close(); canvas.setFillColor(0xFFCC99FF).fillPath(path); ImageLayer layer = new ImageLayer(canvas.toTexture()); layer.setOrigin(15, 10); layer.setRotation(-MathUtil.HALF_PI); int id = ship.id; type.set(id, SHIP); sprite.set(id, layer); opos.set(id, x, y); pos.set(id, x, y); vel.set(id, 0, 0); radius.set(id, 10); return ship; }
@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); } }); } }
sqimg.setFillColor(0xFF99CCFF).fillRect(0, 0, 50, 50); final ImageLayer square = new ImageLayer(sqimg.toTexture()); square.setOrigin(25, 25); layer.addAt(square, 50, 300); square.events().connect(new Pointer.Listener() {