protected void fragment (String source, Texture tex, float ox, float oy) { float hw = tex.displayWidth/2f, hh = tex.displayHeight/2f; Tile ul = tex.tile(0, 0, hw, hh); Tile ur = tex.tile(hw, 0, hw, hh); Tile ll = tex.tile(0, hh, hw, hh); Tile lr = tex.tile(hw, hh, hw, hh); Tile ctr = tex.tile(hw/2, hh/2, hw, hh); float dx = hw + 10, dy = hh + 10; GroupLayer group = new GroupLayer(); group.addAt(new ImageLayer(ul), 0, 0); group.addAt(new ImageLayer(ur), dx, 0); group.addAt(new ImageLayer(ll), 0, dy); group.addAt(new ImageLayer(lr), dx, dy); group.addAt(new ImageLayer(ctr), dx/2, 2*dy); float xoff = tex.displayWidth + 20; group.addAt(new ImageLayer(ul).setScale(2), xoff, 0); group.addAt(new ImageLayer(ur).setScale(2), xoff+2*dx, 0); group.addAt(new ImageLayer(ll).setScale(2), xoff, 2*dy); group.addAt(new ImageLayer(lr).setScale(2), xoff+2*dx, 2*dy); game.rootLayer.addAt(group, ox, oy); addDescrip(source + " to Texture to Tiles, and scaled", ox, oy + tex.displayHeight*2 + 25, 3*tex.displayWidth+40); } }
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; }
g5Inner.addAt(new ImageLayer(tex).setScale(2), -iwidth, -iheight); g5Inner.addAt(new ImageLayer(tex).setScale(2), -iwidth, iheight); g5Inner.addAt(new ImageLayer(tex).setScale(2), iwidth, -iheight); g5Inner.addAt(new ImageLayer(tex).setScale(2), iwidth, iheight); GroupLayer g5 = new GroupLayer(100, 100); g5.addAt(g5Inner, -25, -25);
@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)); }