カーソル (x, y) を調べて、複数の長方形 ( ) のいずれかに収まるかどうかを確認する関数がありますa<x<b, c<y<d
。ただし、カーソルが特定の長方形に収まるかどうかに基づいてブール値を設定し、カーソルが他の長方形に収まったときにのみリセットする必要があります。言い換えると
カーソルが長方形 X 内にある場合、A は真です。
カーソルが四角形 1、2、3、または 4 内にある場合、A は false
Y または Z 以外の場所にある場合、A は以前の値を保持します。
問題は、最初の四角形を離れると、他の2つの四角形にアクセスするかどうかに関係なく、ブール値がfalseを返すことです。ブール値をグローバルにしようとしましたが、それは役に立ちませんでした。
コード;
var r
var s
var l
var inCenter = false
function makeRects(a,b)
{
r = a-b
s = (a/2) - (b/2)
l = (a/2) + (b/2)
lSide = new Array(4)
lSide[0] = 0
lSide[1] = 0
lSide[2] = a
lSide[3] = b
tSide = new Array(4)
tSide[0] = 0
tSide[1] = 0
tSide[2] = b
tSide[3] = a
rSide = new Array(4)
rSide[0] = r
rSide[1] = 0
rSide[2] = b
rSide[3] = b
bSide = new Array(4)
bSide[0] = 0
bSide[1] = r
bSide[2] = b
bSide[3] = b
aSquare = new Array(4)
aSquare[0] = 0
aSquare[1] = 0
aSquare[2] = s
aSquare[3] = s
bSquare = new Array(4)
bSquare[0] = l
bSquare[1] = 0
bSquare[2] = b
bSquare[3] = s
cSquare = new Array(4)
cSquare[0] = 0
cSquare[1] = l
cSquare[2] = s
cSquare[3] = r
dSquare = new Array(4)
dSquare[0] = l
dSquare[1] = l
dSquare[2] = r
dSquare[3] = r
lCenter = new Array(4)
lCenter[0] = 0
lCenter[1] = s
lCenter[2] = b
lCenter[3] = l
tCenter = new Array(4)
tCenter[0] = s
tCenter[1] = 0
tCenter[2] = l
tCenter[3] = b
rCenter = new Array(4)
rCenter[0] = r
rCenter[1] = s
rCenter[2] = a
rCenter[3] = l
bCenter = new Array(4)
bCenter[0] = s
bCenter[1] = r
bCenter[2] = l
bCenter[3] = a
mCenter = new Array(4)
mCenter[0] = s
mCenter[1] = s
mCenter[2] = l
mCenter[3] = l
}
function cursor(a,b)
{
var inaSquare = false
var inbSquare = false
var incSquare = false
var indSquare = false
var inCenter = false
if ((a>aSquare[0] && a<aSquare[2])&&(b>aSquare[1] && b<aSquare[3]))
{
inaSquare = true
post("aSquare");
post();
}
if ((a>bSquare[0] && a<bSquare[2])&&(b>bSquare[1] && b<bSquare[3]))
{
inbSquare = true
post("bSquare");
post();
}
if ((a>cSquare[0] && a<cSquare[2])&&(b>cSquare[1] && b<cSquare[3]))
{
inbSquare = true
post("cSquare");
post();
}
if ((a>dSquare[0] && a<dSquare[2])&&(b>dSquare[1] && b<dSquare[3]))
{
indSquare = true
post("dSquare");
post();
}
if (inaSquare||inbSquare||incSquare||indSquare)
{
inCenter = false
}
if ((a>mCenter[0] && a<mCenter[2])&&(b>mCenter[1] && b<mCenter[3]))
{
inCenter = true
inaSquare = false
inbSquare = false
incSquare = false
indSquare = false
}
if (((inCenter && a>s) && a<l) && b<lCenter[3])
{
outlet (1, 1)
}
else if (((inCenter && a>s) && a<l) && b>rCenter[0])
{
outlet (1, 2)
}
else if (((inCenter && b>s) && b<l) && a<tCenter[3])
{
outlet (1, 3)
}
else if (((inCenter && b>s) && b<l) && b>bCenter[1])
{
outlet (1, 4)
}
else
{
outlet (1, 0)
}
post("inCenter");
post(inCenter);
post();
post("inaSquare");
post(inaSquare);
post();
post("inbSquare");
post(inbSquare);
post();
post("incSquare");
post(incSquare);
post();
post("indSquare");
post(indSquare);
post();
}