From da2c0d100a0b55e627ecdf5eaf5b8af78dd97c1c Mon Sep 17 00:00:00 2001 From: Aki Date: Tue, 5 Sep 2017 20:05:45 +0200 Subject: Fresh take on cloud-related random methods --- not/CloudGenerator.lua | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) (limited to 'not') diff --git a/not/CloudGenerator.lua b/not/CloudGenerator.lua index a26cc77..404be1b 100644 --- a/not/CloudGenerator.lua +++ b/not/CloudGenerator.lua @@ -4,7 +4,6 @@ CloudGenerator = require "not.Object":extends() require "not.Cloud" --- TODO: Allow map config to modify cloud styles. local animations = { default = { [1] = love.graphics.newQuad( 1, 1, 158,47, 478,49), @@ -23,27 +22,33 @@ local animations = { } } +-- TODO: Allow map config to modify cloud styles: maximum cloud count, animations and atlas. function CloudGenerator:new (world) self.world = world self.atlas = "assets/clouds.png" self.quads = animations + self.count = 18 end -function CloudGenerator:createCloud (x, y) +function CloudGenerator:createCloud (x, y, style) local cloud = Cloud(x, y, self.world, self.atlas) cloud:setAnimationsList(self.quads) + cloud:setAnimation(style) cloud:setVelocity(13, 0) cloud:setBoundary(340, 320) return cloud end +function CloudGenerator:getRandomPosition (inside) + return 20, 20 +end + +function CloudGenerator:getRandomStyle () + return "default" +end + +--[[ function CloudGenerator:randomize (outside) - if outside == nil then - outside = true - else - outside = outside - end - local x,y,t,v local m = self.map if outside then x = m.center.x-m.width*1.2+love.math.random(-50,20) @@ -54,9 +59,20 @@ function CloudGenerator:randomize (outside) t = love.math.random(1,3) v = love.math.random(8,18) end +]] + +function CloudGenerator:run (count, inside) + local count = count or 1 + for i=1,count then + local x, y = self:getRandomPosition(inside) + local style = self:getRandomStyle() + self.world:insertCloud(self:createCloud(x, y, style)) + end +end function CloudGenerator:update (dt) local count = self.world:getCloudsCount() + self:run() end return CloudGenerator -- cgit v1.1