Jump to content

¿Determinar si una zona choca con otra?


Sergioks

Recommended Posts

Hola a todos, tengo una pequeña duda que me ocurre con un calculo. Intento hacer que en el mapa aparezcan zonas (radarareas) en especifico por todo el mapa y que a la vez, estas no choquen entre ellas o con las zonas ya existentes en el mapa. Cree esta función, pero igualmente de vez en cuando chocan algunas radarareas entre si o con las ya existentes y no se como hacer. Si alguien es tan amable de ayudarme con esta formula, le estaría eternamente agradecido. La formula que yo había diseñado era esta:
 

function isPositionsAble(x, y, size)
	local bool = true
	for i, k in ipairs(getElementsByType("radararea")) do
		local rx, ry = getElementPosition(k)
		local rw, rh = getRadarAreaSize(k)
		--
		local h = (x < rx ) ~= (x + size < rx ) or ( x > rx ) ~= ( x > rx + rw)
		local v = (y < ry ) ~= (y + size < ry ) or ( y > ry ) ~= ( y > ry + rh)
		--
		if ( h ) and ( v ) then
			bool = false
			break
		else
			bool = true
		end
	end
	---
	return bool
end

Pero, de igual forma como dije, las radarareas se siguen creando una sobre la otra, o chocan entre ellas o con las ya existentes en el mapa.

 

Gracias de antemano por leer :D

Link to comment
3 hours ago, Mauro.e said:

¿las posiciones donde se crea el radar área las tenes en un archivo .map? 

En un .lua, a través de un math.random determino la posición X y Y y su tamaño, que de ambos lados es el mismo, es decir, es un cuadrado. Pero ya lo resolví con ayuda de un amigo. Gracias igualmente :D

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...