można by było zrobić tak:
-robisz obiekt co ma maske (np: twój kwadrat, o liniach na tyle grubych, aby sie można było wyrobić)
-i dwa o masce takiej małej kropki -> O
-
GML
/* create / o_czar (kontroler) */
start=false;
on_lane=false
end=false
GML
/* mouse -> mouse enter / w o_start(ma on maske kropki) */
o_czar.start=true
GML
/* mouse -> mouse enter / w o_kwadrat (tym z kwadratową maską) */
o_czar.on_lane=true
/* mouse -> mouse leave */
o_czar.on lane=false
o_czar.start=false
o_czar.end=false
GML
/* mouse -> mouse enter / w o_stop(tu również maska kropki) */
o_czar.end=true
GML
/* step / o_czar */
if start and on_lane and end
{
// to, że czar się udał
}
w ten sposób, nie ważne w którą stronę kwadratu porusza się gracz, zda, jeśli zacznie z jednego końca i nie wychodząc za linie dojdzie na drugi koniec.
jak chcesz mieć w jedną strone tylko - to w o_stop w mouse -> mouse_enter daj:
GML
if o_czar.on_lane and o_czar.start
{
o_czar.end=true
}
i da się przejść tyko z jednego końca na drugi.
P.S: pamiętaj, żeby figura nie była łamaną zamknięta ;) jak chcesz krzyżować, to daj checkpointy po drodze
Edit:
jak się pogubisz to mów, wtedy ci jutero przykładzik zrobię.