Как организовать движение объекта к цели - VB

Узнай цену своей работы

Формулировка задачи:

Всем, Здравствуйте! Интересует такой вопрос. Как организовать движение объекта (обьект , двигается вперед, но может поворачивать на определенный угол и снова едет вперед) к цели С, из A в B цель передвинулась, я получил координаты из них стороны и углы треугольника (через аркосинус), полученного вершинами, начала , куда передвинулся обьект и целью, Дальше нужно организовать перемещение , вернее , надо как то проверять условия, чтобы обьект , через определённые промежутки времени, опять проверял направление и снова двигался к цели. Уже 3 дня бьюсь над этой задачей. Не знаю как организовать проверку и правильный поворот. То есть цель , сама должна поворачиваться, потом двигаться , проверять и так далее) Помогите пожалуйста!

Решение задачи: «Как организовать движение объекта к цели»

textual
Листинг программы
  1. LCLICK(613,322)  // 4754312
  2. //--------------------------------
  3. $edpov=2350/360
  4. //--------------------------------
  5. #ps2_keyboard
  6. //--------------------------------
  7. $x0=0
  8. $y0=0
  9. $xc=0
  10. $yb=0
  11. $xc=0
  12. $yc=0
  13. $ac=0
  14. $ab =0
  15. $bc =0
  16. //-----------------
  17.  
  18.  
  19. $xc=  687
  20. $yc=  445
  21. $shag=3000
  22. //-----------------
  23. m1:
  24. GETSCREEN
  25. COLORMODE(6)
  26. IF_PIXEL_IN(236,34, 1032,713, 8339455)
  27.    $x0=$_return1
  28.    $y0=$_return2
  29.    KEYDOWN (#w)
  30.    WAITMS (1000)
  31.    KEYUP(#w)
  32. ELSE
  33.    KEYDOWN (#A)
  34.    WAITMS (50)
  35.    KEYUP(#A)
  36.    GOTo(m1)
  37. end_if
  38.  
  39. m2:
  40. WAITMS(50)
  41. GETSCREEN
  42. COLORMODE(6)
  43. IF_PIXEL_IN(236,34, 1032,713, 8339455)
  44.    $xb=$_return1
  45.    $yb=$_return2    
  46.    KEYDOWN (#d)
  47.    WAITMS ($ugzap3)
  48.    KEYUP(#d)
  49.    $ugzap3=0
  50. ELSE
  51. $ugzap3=$ugzap3+50
  52.    KEYDOWN (#A)
  53.    WAITMS (50)
  54.    KEYUP(#A)
  55.    GOTo(m2)
  56. end_if  
  57.  
  58. WAITMS(50)  
  59.  
  60. m3:
  61. goto(rasug)
  62. rasug1:
  63. if ($ac>10)
  64. goto(usloviya)
  65. usloviya1:
  66. goto(cvet)
  67. cvet1:
  68. WAITMS(50)
  69. KEYDOWN (#w)
  70. WAITMS ($shag)
  71. KEYUP(#w)
  72. goto(cvet2)
  73. cvet21:
  74. goto(m3)
  75. end_if
  76.  
  77. HALT
  78. //--------------------------------
  79.  
  80. cvet:
  81. $ugzap1=0
  82. m4:  
  83. GETSCREEN
  84. COLORMODE(6)
  85. IF_PIXEL_IN(236,34, 1032,713, 8339455)
  86. $x0=$_return1
  87. $y0=$_return2
  88. kEYDOWN (#d)
  89. WAITMS ($ugzap1)
  90. KEYUP(#d)
  91. $ugzap1=$ugzap1+50
  92. ELSE
  93. kEYDOWN (#A)
  94. WAITMS (50)
  95. KEYUP(#A)
  96. $ugzap1=$ugzap1+50
  97. GOTo(m4)
  98. end_if
  99. goto(cvet1)
  100.  
  101. HALT
  102. //--------------------------------
  103.  
  104. cvet2:
  105. $ugzap2=0
  106. m5:
  107. GETSCREEN
  108. COLORMODE(6)
  109. GETSCREEN
  110. COLORMODE(6)
  111. IF_PIXEL_IN(236,34, 1032,713, 8339455)
  112. $xb=$_return1
  113. $yb=$_return2
  114. KEYDOWN (#d)
  115. WAITMS ($ugzap2)
  116. KEYUP(#d)
  117. ELSE    
  118. kEYDOWN (#A)
  119. WAITMS (50)
  120. KEYUP(#A)
  121. $ugzap2=$ugzap2+50
  122. GOTo(m5)
  123. end_if  
  124. goto(cvet21)  
  125.  
  126. HALT
  127. //--------------------------------
  128.  
  129.  
  130. rasug:
  131. $ac=dist($x0,$y0,$xc,$yc)
  132. $a=$ac
  133. $ab=dist($x0,$y0,$xb,$yb)
  134. $b=$ab
  135. $bc=dist($xc,$yc,$xb,$yb)
  136. $c=$bc
  137. //------
  138. WAITMS(50)
  139. TFCLEAR ("C:\KLM\lotro\ras\a.txt")
  140. WAITMS(50)
  141. TFCLEAR ("C:\KLM\lotro\ras\b.txt")
  142. WAITMS(50)
  143. TFCLEAR ("C:\KLM\lotro\ras\c.txt")
  144. WAITMS(50)
  145. //------
  146. TFCLEAR ("C:\KLM\lotro\ras\aug.txt")
  147. WAITMS(50)
  148. TFCLEAR ("C:\KLM\lotro\ras\cug.txt")
  149. WAITMS(50)
  150. //------
  151. TFWrite("C:\KLM\lotro\ras\a.txt",$a,1)
  152. WAITMS(50)
  153. TFWrite("C:\KLM\lotro\ras\b.txt",$b,1)
  154. WAITMS(50)
  155. TFWrite("C:\KLM\lotro\ras\c.txt",$c,1)
  156. WAITMS(50)
  157. //------
  158. EXECUTE("C:\KLM\lotro\arcos.exe")
  159. WAIT(1)
  160. //------
  161. $ug= TFREAD ("C:\KLM\lotro\ras\aug.txt",1)
  162. WAITMS(50)
  163. $ug0= TFREAD ("C:\KLM\lotro\ras\cug.txt",1)
  164. goto(rasug1)            
  165.  
  166. HALT  
  167. //--------------------------------
  168.      
  169. usloviya:
  170. $tt=0
  171. inc($g,1)
  172. print("<br>",$g)
  173. $ugpov=180-$ug
  174. $pov=round($ugpov*$edpov,0)
  175. $ug1=$ug0+$ug0/10
  176. //$povnov=$ug0
  177. $rad1=3.14159265359/180*$ug1
  178. $rad0= 3.14159265359/180*$ug0
  179. print("rad0  ",$rad0," $rad1  ",$rad1)
  180. print("ug  ",$ug1," $ug0  ",$ug0)
  181. print("ugpov  ",$ugpov)
  182. //------
  183. if ($rad0<$rad1)
  184. $tt=1
  185. KEYDOWN (#a)
  186. WAITMS ($pov)
  187. KEYUP(#a)
  188. end_if
  189.  //------
  190. if ($rad0>$rad1)
  191. $tt=2
  192. KEYDOWN (#d)
  193. WAITMS ($pov)
  194. KEYUP(#d)
  195. end_if
  196. //if ($rad0=$rad)
  197. //end_if
  198. //------
  199. if ($tt=2)
  200. print("d ")
  201. else
  202. print("a ")
  203. end_if
  204. print("<br>",$g)
  205. goto(usloviya1)
  206.            
  207. HALT
  208. //--------------------------------

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.143 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут