Персонаж все время смотрит вверх
- 0 RAD
- 5 XE%=SCREENWIDTH(0):YE%=SCREENHEIGHT(0):XC%=XE%/2:YC%=YE%/2:PI=3.1415
- 6 RAST=30:GRAD=1.5
- 10 GELLOAD "a",icon.png"
- 11 SPRITEGEL "0","a"
- 20 GELLOAD "a","icon.png"
- 21 SPRITEGEL "1","a"
- 22 SPRITEMOVE "1",XC%-5,YC%-5
- 26 SPRITEMOVE "0",XC%+X-10,YC%-Y-10
- 28 IF RIGHT(0) THEN GRAD=GRAD+0.1:IF GRAD>2*PI THEN GRAD=0
- 29 IF LEFT(0) THEN GRAD=GRAD-0.1:IF GRAD<0 THEN GRAD=2*PI
- 30 IF UP(0) THEN GOSUB 1000
- 35 X=COS(GRAD)*RAST:Y=SIN(GRAD)*RAST
- 39 CLS
- 40 PRINT "radian=":PRINT GRAD
- 41 PRINT "x=":PRINT X
- 42 PRINT "y=":PRINT Y
- 43 PRINT "rast=":PRINT RAST
- 60 SLEEP 50:GOTO 26
- 1000 Y=Y-1
- 1005 RAST=SQR(X*X+Y*Y)
- 1010 IF X>0 AND Y>=0 THEN GRAD=ATAN(Y/X)
- 1011 IF X>0 AND Y<0 THEN GRAD=ATAN(Y/X)+2*PI
- 1012 IF X<0 THEN GRAD=ATAN(Y/X)+PI
- 1013 IF X=0 AND Y>0 THEN GRAD=PI/2
- 1014 IF X=0 AND Y<0 THEN GRAD=3*PI/2
- 1015 IF X=0 AND Y=0 THEN GRAD=0
- 1020 RETURN
Я тут как то прочитал, что для начинающих надо выкладыват полный код. Вот и выложил. Просто запускаем на МВ 1.8.6... Этод код не идеальный, но в нем содержится формула перевода из декартовых координат в полярные и наоборот. Что позволит точно отобразить физику поворота мира.