duvida: Love2D funcão que retorna bool, mas diz que compara string

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

duvida: Love2D funcão que retorna bool, mas diz que compara string

Arion
Ola tudo bem ? 

pessoal eu estavá fazendo aqui uma tentativa de fazer um função que testa a colisão entre  2 retangulos , o primerio controlado  pelo teclado o segundo seria como se fosse um cenario.  e fiz aqui uma função pequena e simples que testa para ver se ouve colisão ou não e retorna verdadeiro caso tenha colisão e falso caso não tenha, mas quando fui rodar novamente a Love2D diz a seguinte mensagem de erro   

main.lua 45    attempt to compare number wih string

eu não sei oque posso estar fazendo de errado, os argumentos estão todos como inteiros.
vou postar o código.
___________________________________
-- tabela para o objeto persoangem
obj = {
  posx='45' , 
  posy='45'
}
-- para ver oque a função que retorna colisão retorna
teve_coisao =false

function love.update(dt)
 if  love.keyboard.isDown("right") then
  obj.posx= obj.posx +120*dt
end

 if  love.keyboard.isDown("left") then
  obj.posx= obj.posx - 120 *dt
end

 if  love.keyboard.isDown("up") then
  obj.posy= obj.posy -120 *dt
end

 if  love.keyboard.isDown("down") then
  obj.posy= obj.posy +120 *dt
end


teve_coisao = Testa_colisao_por_caixa(obj.posx,obj.posy,23,23, 123,233,124,33)

end


function love.draw()
--rectangulo estatico
love.graphics.setColor(0,125,234,125)
love.graphics.rectangle("fill", 123, 233, 124,33)

   --retangulo que se mexe
   love.graphics.translate( obj.posx, obj.posy)
   love.graphics.rectangle("fill" ,obj.posx, obj.posy, 23,33)

   
end

function Testa_colisao_por_caixa(ax, ay, awidth, aheight, bx, by,bwidth, bheight)
 if bx + bwidth < ax then -- b.direita < a.esquerda
   return false
 end
 
 if  bx > ax + awidth then -- b.esquerda > a.direta
   return false
 end

 if by + bheight < ay then -- b baixo < a.cima
 return false
end

if by > ay + aheight then --b.cima > a.baixo
 return false
end

return true
end
___________________________________

estou usando a versão mais recente da love2D

obrigado desde já pela ajuda.
 

--
Lua BR - http://groups.google.com/group/lua-br
Reply | Threaded
Open this post in threaded view
|

Re: duvida: Love2D funcão que retorna bool, mas diz que compara string

Elias Barrionovo
2012/11/7 Arion_deno <[hidden email]>:
> main.lua 45    attempt to compare number wih string
>

Cheque os tipos parâmetros que você passa. Você definiu os campos em
obj como strings, e não como números:
> -- tabela para o objeto persoangem
> obj = {
>   posx='45' ,
>   posy='45'
> }


--
NI!

--
Lua BR - http://groups.google.com/group/lua-br
Reply | Threaded
Open this post in threaded view
|

Re: duvida: Love2D funcão que retorna bool, mas diz que compara string

Arion
In reply to this post by Arion
Puts não tinha nem percebido essa, tó começando com programação e tó seguindo um livro sobre lua. 
 vou tomar mais cuidado.

muito obrigado.

--
Lua BR - http://groups.google.com/group/lua-br