Как организовать движение объекта к цели - VB
Формулировка задачи:
Всем, Здравствуйте! Интересует такой вопрос. Как организовать движение объекта (обьект , двигается вперед, но может поворачивать на определенный угол и снова едет вперед) к цели С, из A в B цель передвинулась, я получил координаты из них стороны и углы треугольника (через аркосинус), полученного вершинами, начала , куда передвинулся обьект и целью, Дальше нужно организовать перемещение , вернее , надо как то проверять условия, чтобы обьект , через определённые промежутки времени, опять проверял направление и снова двигался к цели. Уже 3 дня бьюсь над этой задачей. Не знаю как организовать проверку и правильный поворот. То есть цель , сама должна поворачиваться, потом двигаться , проверять и так далее) Помогите пожалуйста!
Решение задачи: «Как организовать движение объекта к цели»
textual
Листинг программы
- LCLICK(613,322) // 4754312
- //--------------------------------
- $edpov=2350/360
- //--------------------------------
- #ps2_keyboard
- //--------------------------------
- $x0=0
- $y0=0
- $xc=0
- $yb=0
- $xc=0
- $yc=0
- $ac=0
- $ab =0
- $bc =0
- //-----------------
- $xc= 687
- $yc= 445
- $shag=3000
- //-----------------
- m1:
- GETSCREEN
- COLORMODE(6)
- IF_PIXEL_IN(236,34, 1032,713, 8339455)
- $x0=$_return1
- $y0=$_return2
- KEYDOWN (#w)
- WAITMS (1000)
- KEYUP(#w)
- ELSE
- KEYDOWN (#A)
- WAITMS (50)
- KEYUP(#A)
- GOTo(m1)
- end_if
- m2:
- WAITMS(50)
- GETSCREEN
- COLORMODE(6)
- IF_PIXEL_IN(236,34, 1032,713, 8339455)
- $xb=$_return1
- $yb=$_return2
- KEYDOWN (#d)
- WAITMS ($ugzap3)
- KEYUP(#d)
- $ugzap3=0
- ELSE
- $ugzap3=$ugzap3+50
- KEYDOWN (#A)
- WAITMS (50)
- KEYUP(#A)
- GOTo(m2)
- end_if
- WAITMS(50)
- m3:
- goto(rasug)
- rasug1:
- if ($ac>10)
- goto(usloviya)
- usloviya1:
- goto(cvet)
- cvet1:
- WAITMS(50)
- KEYDOWN (#w)
- WAITMS ($shag)
- KEYUP(#w)
- goto(cvet2)
- cvet21:
- goto(m3)
- end_if
- HALT
- //--------------------------------
- cvet:
- $ugzap1=0
- m4:
- GETSCREEN
- COLORMODE(6)
- IF_PIXEL_IN(236,34, 1032,713, 8339455)
- $x0=$_return1
- $y0=$_return2
- kEYDOWN (#d)
- WAITMS ($ugzap1)
- KEYUP(#d)
- $ugzap1=$ugzap1+50
- ELSE
- kEYDOWN (#A)
- WAITMS (50)
- KEYUP(#A)
- $ugzap1=$ugzap1+50
- GOTo(m4)
- end_if
- goto(cvet1)
- HALT
- //--------------------------------
- cvet2:
- $ugzap2=0
- m5:
- GETSCREEN
- COLORMODE(6)
- GETSCREEN
- COLORMODE(6)
- IF_PIXEL_IN(236,34, 1032,713, 8339455)
- $xb=$_return1
- $yb=$_return2
- KEYDOWN (#d)
- WAITMS ($ugzap2)
- KEYUP(#d)
- ELSE
- kEYDOWN (#A)
- WAITMS (50)
- KEYUP(#A)
- $ugzap2=$ugzap2+50
- GOTo(m5)
- end_if
- goto(cvet21)
- HALT
- //--------------------------------
- rasug:
- $ac=dist($x0,$y0,$xc,$yc)
- $a=$ac
- $ab=dist($x0,$y0,$xb,$yb)
- $b=$ab
- $bc=dist($xc,$yc,$xb,$yb)
- $c=$bc
- //------
- WAITMS(50)
- TFCLEAR ("C:\KLM\lotro\ras\a.txt")
- WAITMS(50)
- TFCLEAR ("C:\KLM\lotro\ras\b.txt")
- WAITMS(50)
- TFCLEAR ("C:\KLM\lotro\ras\c.txt")
- WAITMS(50)
- //------
- TFCLEAR ("C:\KLM\lotro\ras\aug.txt")
- WAITMS(50)
- TFCLEAR ("C:\KLM\lotro\ras\cug.txt")
- WAITMS(50)
- //------
- TFWrite("C:\KLM\lotro\ras\a.txt",$a,1)
- WAITMS(50)
- TFWrite("C:\KLM\lotro\ras\b.txt",$b,1)
- WAITMS(50)
- TFWrite("C:\KLM\lotro\ras\c.txt",$c,1)
- WAITMS(50)
- //------
- EXECUTE("C:\KLM\lotro\arcos.exe")
- WAIT(1)
- //------
- $ug= TFREAD ("C:\KLM\lotro\ras\aug.txt",1)
- WAITMS(50)
- $ug0= TFREAD ("C:\KLM\lotro\ras\cug.txt",1)
- goto(rasug1)
- HALT
- //--------------------------------
- usloviya:
- $tt=0
- inc($g,1)
- print("<br>",$g)
- $ugpov=180-$ug
- $pov=round($ugpov*$edpov,0)
- $ug1=$ug0+$ug0/10
- //$povnov=$ug0
- $rad1=3.14159265359/180*$ug1
- $rad0= 3.14159265359/180*$ug0
- print("rad0 ",$rad0," $rad1 ",$rad1)
- print("ug ",$ug1," $ug0 ",$ug0)
- print("ugpov ",$ugpov)
- //------
- if ($rad0<$rad1)
- $tt=1
- KEYDOWN (#a)
- WAITMS ($pov)
- KEYUP(#a)
- end_if
- //------
- if ($rad0>$rad1)
- $tt=2
- KEYDOWN (#d)
- WAITMS ($pov)
- KEYUP(#d)
- end_if
- //if ($rad0=$rad)
- //end_if
- //------
- if ($tt=2)
- print("d ")
- else
- print("a ")
- end_if
- print("<br>",$g)
- goto(usloviya1)
- HALT
- //--------------------------------
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д