OBJECT=MUSIC MUSIC:TYPE=MUSIC MUSIC:FILENAME=EGIPT.WAV OBJECT=KEYBOARD KEYBOARD:TYPE=KEYBOARD KEYBOARD:ONKEYDOWN^LEFT={DEBUG_VALUE^DEC();DEBUG^GOTO("ARRAY_TEST");} KEYBOARD:ONKEYDOWN^ESC={EXITPROGRAM^RUN();} KEYBOARD:ONKEYDOWN^UP={@IF("BEHNO",">","1","{BEHNO^DEC();}","");*[ANIMO_TEST_+BEHNO]^RUN();} KEYBOARD:ONKEYDOWN^DOWN={@IF("BEHNO","<","28","{BEHNO^INC();}","");*[ANIMO_TEST_+BEHNO]^RUN();} KEYBOARD:ONKEYDOWN^W={ANIMACJA^MOVE(0,[0-MOVE_SPEED]);*[ANIMO_TEST_+BEHNO]^RUN();} KEYBOARD:ONKEYDOWN^S={ANIMACJA^MOVE(0,MOVE_SPEED);*[ANIMO_TEST_+BEHNO]^RUN();} KEYBOARD:ONKEYDOWN^A={ANIMACJA^MOVE([0-MOVE_SPEED],0);*[ANIMO_TEST_+BEHNO]^RUN();} KEYBOARD:ONKEYDOWN^D={ANIMACJA^MOVE(MOVE_SPEED,0);*[ANIMO_TEST_+BEHNO]^RUN();} OBJECT=ARIAL14 ARIAL14:TYPE=FONT ARIAL14:DEF_ARIAL_STANDARD_14=$COMMON\ARIAL14.FNT OBJECT=MOVE_SPEED MOVE_SPEED:TYPE=INTEGER MOVE_SPEED:VALUE=10 OBJECT=TXTMSG TXTMSG:TYPE=TEXT TXTMSG:VISIBLE=TRUE TXTMSG:HYPERTEXT= TXTMSG:FONT=ARIAL14 TXTMSG:TOCANVAS=TRUE TXTMSG:RECT=0,0,800,250 TXTMSG:PRIORITY=10000 TXTMSG:HJUSTIFY=CENTER TXTMSG:VJUSTIFY=TOP TXTMSG:MONITORCOLLISION=FALSE TXTMSG:MONITORCOLLISIONALPHA=FALSE OBJECT=TXTMSG2 TXTMSG2:TYPE=TEXT TXTMSG2:VISIBLE=TRUE TXTMSG2:HYPERTEXT= TXTMSG2:FONT=ARIAL14 TXTMSG2:TOCANVAS=TRUE TXTMSG2:RECT=0,0,800,250 TXTMSG2:PRIORITY=10000 TXTMSG2:HJUSTIFY=CENTER TXTMSG2:VJUSTIFY=BOTTOM TXTMSG2:MONITORCOLLISION=FALSE TXTMSG2:MONITORCOLLISIONALPHA=FALSE OBJECT=TXTMSG3 TXTMSG3:TYPE=TEXT TXTMSG3:VISIBLE=FALSE TXTMSG3:HYPERTEXT= TXTMSG3:FONT=ARIAL14 TXTMSG3:TOCANVAS=TRUE TXTMSG3:RECT=0,350,800,650 TXTMSG3:PRIORITY=10000 TXTMSG3:HJUSTIFY=CENTER TXTMSG3:VJUSTIFY=TOP TXTMSG3:MONITORCOLLISION=FALSE TXTMSG3:MONITORCOLLISIONALPHA=FALSE OBJECT=BEHNO BEHNO:TYPE=INTEGER BEHNO:VALUE=10 OBJECT=ANIMACJA ANIMACJA:TYPE=ANIMO ANIMACJA:FILENAME=1_KRET.ANN ANIMACJA:VISIBLE=TRUE ANIMACJA:TOCANVAS=TRUE ANIMACJA:PRIORITY=25 ANIMACJA:FPS=32 ANIMACJA:PRELOAD=TRUE ANIMACJA:RELEASE=TRUE ANIMACJA:MONITORCOLLISION=FALSE ANIMACJA:MONITORCOLLISIONALPHA=FALSE ANIMACJA:ASBUTTON=TRUE ANIMACJA:ONINIT={EVENT_DEBUG_TXT^ADD("|INIT");TXTMSG3^SETTEXT(["SCIEZKA_EVENTY|"+EVENT_DEBUG_TXT^GET()]);} #ANIMACJA:ONDONE={EVENT_DEBUG_TXT^ADD("|DONE");TXTMSG3^SETTEXT(["SCIEZKA_EVENTY|"+EVENT_DEBUG_TXT^GET()]);} ANIMACJA:ONSIGNAL^TEST={EVENT_DEBUG_TXT^ADD("|SIGNAL_TEST");TXTMSG3^SETTEXT(["SCIEZKA_EVENTY|"+EVENT_DEBUG_TXT^GET()]);} ANIMACJA:ONFRAMECHANGED={*[ANIMO_TEST_+BEHNO]^RUN();} ANIMACJA:ONCLICK={ANIMACJA^PLAY("SPADA");} ANIMACJA:ONFINISHED^SPADA={ANIMACJA^SETFRAME("R_IDLE",0);} OBJECT=ANIMACJA2 ANIMACJA2:TYPE=ANIMO ANIMACJA2:FILENAME=REKSIO.ANN ANIMACJA2:VISIBLE=FALSE ANIMACJA2:TOCANVAS=TRUE ANIMACJA2:PRIORITY=25 ANIMACJA2:FPS=32 ANIMACJA2:PRELOAD=TRUE ANIMACJA2:RELEASE=TRUE ANIMACJA2:MONITORCOLLISION=FALSE ANIMACJA2:MONITORCOLLISIONALPHA=FALSE OBJECT=EVENT_DEBUG_TXT EVENT_DEBUG_TXT:TYPE=STRING EVENT_DEBUG_TXT:VALUE= OBJECT=CALCULATE_DISTANCE CALCULATE_DISTANCE:TYPE=BEHAVIOUR CALCULATE_DISTANCE:CODE={@INT("X_SQUARE", [$1-$3]);X_SQUARE^POWER(2);@INT("Y_SQUARE", [$2-$4]);Y_SQUARE^POWER(2);@DOUBLE("ANIMO_DISTANCE", [X_SQUARE+Y_SQUARE]);ANIMO_DISTANCE^SQRT();@RETURN(ANIMO_DISTANCE);} # OBLICZA PROCENT NAKLADANIA SIE PROSTOKATOW # $1 - LEWY X OBIEKTU 1 # $2 - DOLNY Y OBIEKTU 1 # $3 - LEWY X OBIEKTU 2 # $4 - DOLNY Y OBIEKTU 2 # $5 - PRAWY X OBIEKTU 1 # $6 - GORNY Y OBIEKTU 1 # $7 - PRAWY X OBIEKTU 2 # $8 - GORNY Y OBIEKTU 2 OBJECT=CALCULATE_IOU CALCULATE_IOU:TYPE=BEHAVIOUR CALCULATE_IOU:CODE={@INT("INTERSECTIONX",0);@INT("INTERSECTIONY",0);@INT("INTERSECTIONWIDTH",0);@INT("INTERSECTIONHEIGHT",0);INTERSECTIONX^SET(INTERSECTIONX^MAXA($1, $3));INTERSECTIONY^SET(INTERSECTIONY^MAXA($2, $4));INTERSECTIONWIDTH^SET(INTERSECTIONWIDTH^MINA($5, $7));INTERSECTIONWIDTH^SUB(INTERSECTIONX);INTERSECTIONHEIGHT^SET(INTERSECTIONHEIGHT^MINA($6, $8));INTERSECTIONHEIGHT^SUB(INTERSECTIONY);!@IF("INTERSECTIONWIDTH<'0||INTERSECTIONHEIGHT<'0","RETURN_ZERO", "");@INT("INTERSECTIONAREA",[INTERSECTIONWIDTH*INTERSECTIONHEIGHT]);@INT("RECT1AREA",[[$5-$1]*[$6-$2]]);@INT("RECT2AREA",[[$7-$3]*[$8-$4]]);@INT("UNIONAREA",[RECT1AREA+RECT2AREA-INTERSECTIONAREA]);@DOUBLE("IOU",[1.0*INTERSECTIONAREA@UNIONAREA*100]);TXTMSG3^();!TXTMSG3^SETTEXT(["INTERSECTIONX__"+INTERSECTIONX+"|INTERSECTIONY__"+INTERSECTIONY+"|INTERSECTIONY__"+INTERSECTIONWIDTH+"|INTERSECTIONWIDTH__"+INTERSECTIONY+"|INTERSECTIONHEIGHT__"+INTERSECTIONHEIGHT+"|INTERSECTIONAREA__"+INTERSECTIONAREA+"|RECT1AREA__"+RECT1AREA+"|RECT2AREA__"+RECT2AREA+"|UNIONAREA__"+UNIONAREA+"|IOU__"+IOU]);@RETURN(IOU);} OBJECT=RETURN_ZERO RETURN_ZERO:TYPE=BEHAVIOUR RETURN_ZERO:CODE={@RETURN(0);} OBJECT=ANIMO_TEST_1 ANIMO_TEST_1:TYPE=BEHAVIOUR ANIMO_TEST_1:CODE={TXTMSG2^SETTEXT(["METODA_GETCENTERX__ZWROCONY_WYNIK__"+ANIMACJA^GETCENTERX()+"|METODA_GETCENTERX(TRUE)__ZWROCONY_WYNIK__"+ANIMACJA^GETCENTERX(TRUE)+"|METODA_GETCENTERX(FALSE)__ZWROCONY_WYNIK__"+ANIMACJA^GETCENTERX(FALSE)+"|METODA_GETCENTERY__ZWROCONY_WYNIK__"+ANIMACJA^GETCENTERY()+"|METODA_GETCENTERY(TRUE)__ZWROCONY_WYNIK__"+ANIMACJA^GETCENTERY(TRUE)+"|METODA_GETCENTERY(FALSE)__ZWROCONY_WYNIK__"+ANIMACJA^GETCENTERY(FALSE)]);} OBJECT=ANIMO_TEST_2 ANIMO_TEST_2:TYPE=BEHAVIOUR ANIMO_TEST_2:CODE={TXTMSG2^SETTEXT(["METODA_GETCFRAMEINEVENT__ZWROCONY_WYNIK__"+ANIMACJA^GETCFRAMEINEVENT()+"|METODA_GETCFRAMEINEVENT(SPADA)__ZWROCONY_WYNIK__"+ANIMACJA^GETCFRAMEINEVENT("SPADA")+"|METODA_GETCFRAMEINEVENT(R_IDLE)__ZWROCONY_WYNIK__"+ANIMACJA^GETCFRAMEINEVENT("R_IDLE")]);} OBJECT=ANIMO_TEST_3 ANIMO_TEST_3:TYPE=BEHAVIOUR ANIMO_TEST_3:CODE={TXTMSG2^SETTEXT(["METODA_GETCURRFRAMEPOSX__ZWROCONY_WYNIK__"+ANIMACJA^GETCURRFRAMEPOSX()+"|METODA_GETCURRFRAMEPOSY__ZWROCONY_WYNIK__"+ANIMACJA^GETCURRFRAMEPOSY()]);} OBJECT=ANIMO_TEST_4 ANIMO_TEST_4:TYPE=BEHAVIOUR ANIMO_TEST_4:CODE={TXTMSG2^SETTEXT(["METODA_GETENDX__ZWROCONY_WYNIK__"+ANIMACJA^GETENDX()+"|METODA_GETENDY__ZWROCONY_WYNIK__"+ANIMACJA^GETENDY()]);} OBJECT=ANIMO_TEST_5 ANIMO_TEST_5:TYPE=BEHAVIOUR ANIMO_TEST_5:CODE={TXTMSG2^SETTEXT(["METODA_GETEVENTNAME__ZWROCONY_WYNIK__"+ANIMACJA^GETEVENTNAME()]);} OBJECT=ANIMO_TEST_6 ANIMO_TEST_6:TYPE=BEHAVIOUR ANIMO_TEST_6:CODE={TXTMSG2^SETTEXT(["METODA_GETCFRAMEINEVENT__ZWROCONY_WYNIK__"+ANIMACJA^GETCFRAMEINEVENT()+"|METODA_GETFRAME__ZWROCONY_WYNIK__"+ANIMACJA^GETFRAME()+"|METODA_GETFRAMENAME__ZWROCONY_WYNIK__"+ANIMACJA^GETFRAMENAME()]);} OBJECT=ANIMO_TEST_7 ANIMO_TEST_7:TYPE=BEHAVIOUR ANIMO_TEST_7:CODE={TXTMSG2^SETTEXT(["METODA_GETHEIGHT__ZWROCONY_WYNIK__"+ANIMACJA^GETHEIGHT()+"|METODA_GETWIDTH__ZWROCONY_WYNIK__"+ANIMACJA^GETWIDTH()+"|METODA_GETMAXHEIGHT__ZWROCONY_WYNIK__"+ANIMACJA^GETMAXHEIGHT()+"|METODA_GETMAXWIDTH__ZWROCONY_WYNIK__"+ANIMACJA^GETMAXWIDTH()]);} OBJECT=ANIMO_TEST_8 ANIMO_TEST_8:TYPE=BEHAVIOUR ANIMO_TEST_8:CODE={TXTMSG2^SETTEXT(["METODA_GETNOE__ZWROCONY_WYNIK__"+ANIMACJA^GETNOE()+"|METODA_GETNOF__ZWROCONY_WYNIK__"+ANIMACJA^GETNOF()+"|METODA_GETNOFINEVENT(SPADA)__ZWROCONY_WYNIK__"+ANIMACJA^GETNOFINEVENT("SPADA")+"|METODA_GETNOFINEVENT(0)__ZWROCONY_WYNIK__"+ANIMACJA^GETNOFINEVENT(0)+"|METODA_GETNOFINEVENT(NIEISTNIEJACY_EVENT)__ZWROCONY_WYNIK__"+ANIMACJA^GETNOFINEVENT("NIEISTNIEJACY_EVENT")]);} OBJECT=ANIMO_TEST_9 ANIMO_TEST_9:TYPE=BEHAVIOUR ANIMO_TEST_9:CODE={TXTMSG2^SETTEXT(["METODA_GETPOSITIONX__ZWROCONY_WYNIK__"+ANIMACJA^GETPOSITIONX()+"|METODA_GETPOSITIONX(TRUE)__ZWROCONY_WYNIK__"+ANIMACJA^GETPOSITIONX(TRUE)+"|METODA_GETPOSITIONX(FALSE)__ZWROCONY_WYNIK__"+ANIMACJA^GETPOSITIONX(FALSE)+"|METODA_GETPOSITIONY__ZWROCONY_WYNIK__"+ANIMACJA^GETPOSITIONY()+"|METODA_GETPOSITIONY(TRUE)__ZWROCONY_WYNIK__"+ANIMACJA^GETPOSITIONY(TRUE)+"|METODA_GETPOSITIONY(FALSE)__ZWROCONY_WYNIK__"+ANIMACJA^GETPOSITIONY(FALSE)]);ANIMACJA2^HIDE();} OBJECT=ANIMO_TEST_10 ANIMO_TEST_10:TYPE=BEHAVIOUR ANIMO_TEST_10:CODE={ANIMACJA2^SHOW();TXTMSG2^SETTEXT(["METODA_ISNEAR__ANIMACJA_NEAR_ANIMACJA2__ZWROCONY_WYNIK__"+ANIMACJA^ISNEAR("ANIMACJA2", 20)+"|METODA_ISNEAR__ANIMACJA2_NEAR_ANIMACJA__ZWROCONY_WYNIK__"+ANIMACJA2^ISNEAR("ANIMACJA", 20)+"|ODLEGLOSC_MIEDZY_CENTRAMI_ANIMACJI__"+CALCULATE_DISTANCE^RUN(ANIMACJA^GETCENTERX(), ANIMACJA^GETCENTERY(), ANIMACJA2^GETCENTERX(), ANIMACJA2^GETCENTERY())+"|ODLEGLOSC_PRAWEJ_STRONY_DO_LEWEJ_STRONY__"+CALCULATE_DISTANCE^RUN(ANIMACJA^GETENDX(), ANIMACJA^GETPOSITIONY(), ANIMACJA2^GETPOSITIONX(), ANIMACJA2^GETENDY())+"|INTERSECTION_OF_UNION__ANIMACJA_NEAR_ANIMACJA2__"+CALCULATE_IOU^RUN(ANIMACJA^GETPOSITIONX(),ANIMACJA^GETPOSITIONY(),ANIMACJA2^GETPOSITIONX(),ANIMACJA2^GETPOSITIONY(),ANIMACJA^GETENDX(),ANIMACJA^GETENDY(),ANIMACJA2^GETENDX(),ANIMACJA2^GETENDY())+"|INTERSECTION_OF_UNION__ANIMACJA2_NEAR_ANIMACJA__"+CALCULATE_IOU^RUN(ANIMACJA2^GETPOSITIONX(),ANIMACJA2^GETPOSITIONY(),ANIMACJA^GETPOSITIONX(),ANIMACJA^GETPOSITIONY(),ANIMACJA2^GETENDX(),ANIMACJA2^GETENDY(),ANIMACJA^GETENDX(),ANIMACJA^GETENDY());]);} OBJECT=__INIT__ __INIT__:TYPE=BEHAVIOUR __INIT__:CODE={KEYBOARD^SETAUTOREPEAT(FALSE);TXTMSG^SETTEXT(["Test"+DEBUG_VALUE+"_Test_animacji"]);TXTMSG^SHOW();TXTMSG2^SHOW();ANIMACJA^SETPOSITION(400, 500);ANIMACJA^PLAY("SPADA");ANIMACJA^SETFRAME("SPADA",4);ANIMACJA2^MOVE(300, -100);ANIMACJA2^PLAY("STOI");ANIMACJA2^HIDE();}