diff options
author | chai <chaifix@163.com> | 2018-12-07 11:22:59 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2018-12-07 11:22:59 +0800 |
commit | 150944ee9e41df2ae5ee25c7845c3f5b2bd74af0 (patch) | |
tree | ea399aeb2172132855ffa2a8c9533b9870a0e9a9 /bin/game/main.lua | |
parent | fe16b453e093d721e60be0a12219d40635b96a3a (diff) |
*私有化shared object template retain和release
Diffstat (limited to 'bin/game/main.lua')
-rw-r--r-- | bin/game/main.lua | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/bin/game/main.lua b/bin/game/main.lua index 8ff5e68..6851c45 100644 --- a/bin/game/main.lua +++ b/bin/game/main.lua @@ -53,17 +53,39 @@ local bitmap = nil local sprs = {} local animator = nil local spr = nil +local particle_sprite = nil +local ps = nil local function createAnimation(path, count, r, c, w, h, loop, speed) local tex = jin.graphics.newTexture(path) local ssheet = jin.graphics.newSpriteSheet(tex) local sprs = ssheet:newSprites(count, r, c, w, h, 96, 168) return jin.graphics.newAnimation(sprs, loop, speed) end - +local Pi = 3.1415 +local tex = nil function jin.core.onLoad() -- bitmap = jin.graphics.newBitmap(200, 200, function(w, h, x, y) -- return {255*math.sin(x/w),255 - 255,255*math.cos(y/w),255} -- end) + tex = jin.graphics.newTexture("particle.png") + particle_sprite = jin.graphics.newSprite(tex, jin.graphics.SpriteOrigin.MIDDLECENTER) + ps = jin.graphics.newParticleSystem() + + ps:setEmitRate(0.02); + ps:setEmitForce(80, 120); + ps:setEmitPosition({50, 50}); + ps:setEmitDirection(-Pi / 10 - Pi / 2, Pi / 10 - Pi / 2); + ps:setParticleLinearAccelaration({0, 10}); + ps:setParticleSpritesMode(jin.graphics.SpriteMode.SINGLE); + ps:setParticleColor({255, 30, 0, 255}); + ps:addParticleTransparencyPoint(1, 0); + ps:addParticleTransparencyPoint(0, 0.5); + ps:enableParticleBlendAdditive(true); + ps:setParticleLife(0.5, 2); + ps:addParticleScalePoint(3, 0); + ps:addParticleScalePoint(0, 1); + ps:addParticleSprite(particle_sprite) + shader_program = jin.graphics.newShader(shader) shader_program2 = jin.graphics.newShader(shader2) local animation = createAnimation("anim2.png", 27, 3, 10, 200, 200, true, 50) @@ -97,11 +119,12 @@ function jin.core.onEvent(e) end end -function jin.core.onUpdate() +function jin.core.onUpdate(dt) tb.x = t t = t + jin.time.getDelta() animator:update(jin.time.getDelta()) timer:update(jin.time.getDelta()) + ps:update(dt) end function jin.core.onDraw() @@ -113,6 +136,7 @@ function jin.core.onDraw() --jin.graphics.draw(sprs[2], 150, 150, 1, 1, 0) local x, y = jin.mouse.getPosition() animator:render(x, y, 1, 1, 0) + ps:render() --jin.graphics.print(#sprs, 10, 10) jin.graphics.draw(spr, 100, 200, 1, 1, 0) --jin.graphics.useShader(shader_program2) |