Added collision check to spawn point finder
This commit is contained in:
@@ -81,7 +81,12 @@ function Siren:_findSpawnPoint()
|
||||
|
||||
local pos = random.chooseUntil(self.game.env.nodes, function(element)
|
||||
local distanceToPlayer = vector.dist(element.x, element.y, self.game.player:getPos())
|
||||
return distanceToPlayer > self.stats.spawnDistanceFromPlayer
|
||||
local isFarEnough = distanceToPlayer > self.stats.spawnDistanceFromPlayer
|
||||
|
||||
local _, len = self.game.world:queryPoint(element.x + (TILE_SIZE / 2), element.y + (TILE_SIZE / 2))
|
||||
local isEmptyTile = len == 0
|
||||
|
||||
return isFarEnough and isEmptyTile
|
||||
end)
|
||||
|
||||
pos.x = pos.x + ((TILE_SIZE - self.size.w) / 2)
|
||||
|
||||
@@ -19,7 +19,7 @@ function Worm.new(game)
|
||||
self.stats = {
|
||||
spawnDistanceFromPlayer = 5 * TILE_SIZE,
|
||||
moveDelay = 1, -- Seconds between movement steps
|
||||
tailLength = 5
|
||||
tailLength = 7
|
||||
}
|
||||
|
||||
self.size = {}
|
||||
@@ -88,7 +88,12 @@ function Worm:getSize() return self.size.w, self.size.h end
|
||||
function Worm:_findSpawnPoint()
|
||||
local pos = random.chooseUntil(self.game.env.nodes, function(element)
|
||||
local distanceToPlayer = vector.dist(element.x, element.y, self.game.player:getPos())
|
||||
return distanceToPlayer > self.stats.spawnDistanceFromPlayer
|
||||
local isFarEnough = distanceToPlayer > self.stats.spawnDistanceFromPlayer
|
||||
|
||||
local _, len = self.game.world:queryPoint(element.x + (TILE_SIZE / 2), element.y + (TILE_SIZE / 2))
|
||||
local isEmptyTile = len == 0
|
||||
|
||||
return isFarEnough and isEmptyTile
|
||||
end)
|
||||
|
||||
return pos
|
||||
|
||||
Reference in New Issue
Block a user