comprobación simple de colisión
This commit is contained in:
parent
f43e0c25b2
commit
c1c1eece39
16
entidades/cercado.lua
Normal file
16
entidades/cercado.lua
Normal file
@ -0,0 +1,16 @@
|
||||
Cercado = {}
|
||||
|
||||
function Cercado:new(x, y)
|
||||
self.sprite = love.graphics.newImage("img/cercado.png")
|
||||
self.width = self.sprite:getWidth()
|
||||
self.height = self.sprite:getHeight()
|
||||
self.x = x-self.width/2
|
||||
self.y = y-self.height/2
|
||||
self.speed = 2
|
||||
|
||||
return self
|
||||
end
|
||||
|
||||
function Cercado:draw()
|
||||
love.graphics.draw(self.sprite, self.x, self.y)
|
||||
end
|
@ -1,3 +1,5 @@
|
||||
require("../lib/helpers")
|
||||
|
||||
Ovella = {}
|
||||
local OvellaMT = {__index = Ovella}
|
||||
|
||||
@ -14,7 +16,7 @@ function Ovella:new(id, x, y)
|
||||
return setmetatable(instance, OvellaMT)
|
||||
end
|
||||
|
||||
function Ovella:update(pastor)
|
||||
function Ovella:update(pastor, cercado)
|
||||
-- vector
|
||||
local X = pastor.x - self.x;
|
||||
local Y = pastor.y - self.y;
|
||||
@ -43,6 +45,9 @@ function Ovella:update(pastor)
|
||||
if distancia < DISTANCIA then
|
||||
-- movemento
|
||||
-- FIXME comprobar que non se vai de marxenes e non choca con muros
|
||||
print(Helpers:CheckCollision(self, cercado))
|
||||
|
||||
-- Establece a nova posición
|
||||
self.x = self.x - dX;
|
||||
self.y = self.y - dY;
|
||||
end
|
||||
|
BIN
img/pastor.png
BIN
img/pastor.png
Binary file not shown.
Before Width: | Height: | Size: 920 B After Width: | Height: | Size: 2.1 KiB |
BIN
img/pastor2.png
Normal file
BIN
img/pastor2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 920 B |
10
lib/helpers.lua
Normal file
10
lib/helpers.lua
Normal file
@ -0,0 +1,10 @@
|
||||
Helpers = {}
|
||||
|
||||
function Helpers:CheckCollision(entidade1, entidade2)
|
||||
return entidade1.x < entidade2.x+entidade2.width and
|
||||
entidade2.x < entidade1.x+entidade1.width and
|
||||
entidade1.y < entidade2.y+entidade2.height and
|
||||
entidade2.y < entidade1.y+entidade1.height
|
||||
end
|
||||
|
||||
return Helpers
|
11
main.lua
11
main.lua
@ -1,6 +1,7 @@
|
||||
require "socket" -- para o tempo en milisengundos
|
||||
require("entidades/pastor")
|
||||
require("entidades/ovella")
|
||||
require("entidades/cercado")
|
||||
inspect = require 'lib.inspect'
|
||||
|
||||
-- configuracion
|
||||
@ -21,16 +22,14 @@ function love.load()
|
||||
|
||||
-- imaxes
|
||||
background = love.graphics.newImage("img/fondo.png")
|
||||
cercado = love.graphics.newImage("img/cercado.png")
|
||||
|
||||
-- fonte
|
||||
local f = love.graphics.newFont(12)
|
||||
love.graphics.setFont(f)
|
||||
|
||||
-- entidades
|
||||
cercado = Cercado:new(width/2, height/2)
|
||||
player = Pastor:new(width/2, height/2)
|
||||
|
||||
-- ovellas con posicios aleatorias
|
||||
for i=1,OVELLAS do
|
||||
-- print(i)
|
||||
math.randomseed(os.time()+i)
|
||||
@ -55,9 +54,7 @@ function love.draw()
|
||||
end
|
||||
|
||||
-- cercado
|
||||
cercadoX = (love.graphics.getWidth() - cercado:getWidth()) / 2
|
||||
cercadoY = (love.graphics.getHeight() - cercado:getHeight()) / 2
|
||||
love.graphics.draw(cercado, cercadoX, cercadoY)
|
||||
cercado:draw()
|
||||
|
||||
-- pastor
|
||||
player:draw()
|
||||
@ -76,7 +73,7 @@ function love.update(dt)
|
||||
player:update(dt)
|
||||
-- update ovella object
|
||||
for i = 1, #ovellas,1 do --itera sobre cada ovella na tabla
|
||||
ovellas[i]:update(player)
|
||||
ovellas[i]:update(player, cercado)
|
||||
end
|
||||
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user