The example spawns game objects and animates them using go.animate(). An alternative bunnymark test with more options can be found here.
bunnymark.script
local BUNNY_IMAGES = { hash("rabbitv3_batman"), hash("rabbitv3_bb8"), hash("rabbitv3"), hash("rabbitv3_ash"), hash("rabbitv3_frankenstein"), hash("rabbitv3_neo"), hash("rabbitv3_sonic"), hash("rabbitv3_spidey"), hash("rabbitv3_stormtrooper"), hash("rabbitv3_superman"), hash("rabbitv3_tron"), hash("rabbitv3_wolverine"), } local DISPLAY_WIDTH = sys.get_config_int("display.width") local DISPLAY_HEIGHT = sys.get_config_int("display.height") local SPAWN_COUNT = 1000 local function spawn(self, amount) for i=1,amount do local bunny = factory.create("#factory") if bunny then local img = BUNNY_IMAGES[math.random(1, #BUNNY_IMAGES)] sprite.play_flipbook(msg.url(nil, bunny, "sprite"), img) go.set_position(vmath.vector3(math.random(DISPLAY_WIDTH), DISPLAY_HEIGHT, 0), bunny) go.animate(bunny, "position.y", go.PLAYBACK_LOOP_PINGPONG, 40, go.EASING_INQUAD, 2, math.random()) self.bunnies = self.bunnies + 1 else print("Unable to create more bunnies") break end end end function init(self) msg.post(".", "acquire_input_focus") self.frames = {} self.bunnies = 0 spawn(self, SPAWN_COUNT) end function update(self, dt) self.frames[#self.frames + 1] = socket.gettime() local fps = 0 if #self.frames == 61 then table.remove(self.frames, 1) fps = 1 / ((self.frames[#self.frames] - self.frames[1]) / (#self.frames - 1)) end label.set_text("#label", ("Bunnies: %d FPS: %.2f. Click to add more"):format(self.bunnies, fps)) end function on_input(self, action_id, action) if action_id == hash("touch") and action.released and action.y < 1030 then spawn(self, SPAWN_COUNT) end end
If you want to play with these examples, you can get the project on Github.
Do you want to see more examples? Why not write a few yourself and submit a pull request? We love contributions.
GITHUB