Skip to content

Instantly share code, notes, and snippets.

@DjPale
Created November 8, 2014 19:54
Show Gist options
  • Select an option

  • Save DjPale/a3aefe97ebea9afa7056 to your computer and use it in GitHub Desktop.

Select an option

Save DjPale/a3aefe97ebea9afa7056 to your computer and use it in GitHub Desktop.
This code gives different behaviors on mac, ios and web on luxeengine
import luxe.Vector;
import luxe.Sprite;
import phoenix.Batcher;
import phoenix.RenderTexture;
// web = OK
// mac = garbled textures
// ios = nothing is displayed
class Main extends luxe.Game
{
var batcher : Batcher;
var textures : Array<RenderTexture> = new Array<RenderTexture>();
var s1 : Sprite;
var s2 : Sprite;
var shapes_added : Bool = false;
var object_size = 80;
// generates 1 texture per call, returns true if all textures are completed
function gen_textures() : Bool
{
if (textures.length >= 2)
{
return true;
}
if (textures.length == 0)
{
var c = object_size / 2;
Luxe.draw.circle({
immediate: true,
r: c,
batcher: batcher,
origin: new luxe.Vector(-c, -c)
});
}
else if (textures.length == 1)
{
Luxe.draw.box({
immediate: true,
batcher: batcher,
w: object_size,
h: object_size,
});
}
var tex = new RenderTexture(Luxe.resources, new Vector(object_size, object_size));
batcher.renderer.target = tex;
batcher.draw();
batcher.renderer.target = null;
textures.push(tex);
return false;
}
function create_shapes()
{
s1 = new Sprite({
pos: new Vector(100, 100),
texture: textures[0]
});
s2 = new Sprite({
pos: new Vector(200, 100),
texture: textures[1]
});
}
override function ready()
{
batcher = Luxe.renderer.create_batcher({ no_add: true });
batcher.view.viewport = new luxe.Rectangle(0, 0, object_size, object_size);
} //ready
override function onrender()
{
gen_textures();
}
override function update(dt:Float)
{
if (!shapes_added && gen_textures())
{
create_shapes();
shapes_added = true;
}
} //update
} //Main
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment