Помогите создать приложение игру, в которой игрок "стреляет" по невидимой цели - VB

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

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

Помогите пожалуйста создать приложение - игру, в которой игрок "стреляет" по невидимой цели. Цель обстрела скрывается где - то на форме. Игрок пытается попасть в цель, выбирая наугад ее координаты X, Y. В случае же промаха программа подсказывает, как следует изменить координаты в следующей попытке. Цель представьте невидимым элементом Image и в момент загрузки формы определите координаты цели X1, y1, x2, y2. Артустановку изобразите в виде кнопки, закодированной в соответствии с заданием.

Решение задачи: «Помогите создать приложение игру, в которой игрок "стреляет" по невидимой цели»

textual
Листинг программы
<style type="text/css">
   #mapForm label { width: 170px; text-align: right; margin: 0 10px 0 0; }
   #mapForm input { width: 60px; background: #fff; border: none; }
   #mapForm div { width: 452px; height: 340px; background: url(article/scheme.png) no-repeat 0 0; position: relative; }
   #mapForm div img { width: 10px; height: 10px; display: none; position: absolute; }
</style>
 
 
<form action="" method="get" id="mapForm">
   <label for="coordX">X:</label>
   <input type="text" name="coordX" />
   
   <label for="coordXfix">X-координата:</label>
   <input type="text" name="coordXfix" id="coordXfix" value="" /><br />
   
   <label for="coordY">Y:</label>
   <input type="text" name="coordY" />
   
   <label for="coordYfix">Y-координата:</label>
   <input type="text" name="coordYfix" id="coordYfix" value="" />
   
   <div id="schemePlace">
      <img src="article/magDot2.gif" alt="" id="magDot2" />
      <img src="article/magDot0.gif" alt="" id="magDot" />
   </div>
</form>
 
 
<script type="text/javascript">
function getCoords() //  вызывается при перемещении курсора над слоем с картой координаты слоя с картой в окне браузера
   {
   imageMapX = findPosX(imageMap);
   imageMapY = findPosY(imageMap);
   imageMap.onmousemove = moveDot;
 
   imageMap.onmouseout = function () //  точку надо убирать, если курсор покинул слой с картой
      {
      myDot.style.display = "none";
      };
 
   imageMap.onclick = coordsFix; //  координаты точки надо запомнить
   }
 
function coordsFix() //  функция фиксирует координаты точки при клике
   {
   myForm.coordXfix.value = myForm.coordX.value; //  координата X
   myForm.coordYfix.value = myForm.coordY.value; //  координата Y
   myDot2.style.display = "block"; // точка показывается
   myDot2.style.left = myForm.coordX.value + "px";  //  и позициоируется
   myDot2.style.top = myForm.coordY.value + "px";
   }
 
function moveDot(cursor) // функция перемещения точки над слоем с картой
   {
   myDot.style.display = "block"; //  точку надо показать
   if (!cursor) var cursor = window.event;
   myForm.coordX.value = "";
   myForm.coordY.value = "";
   var x = 0;
   var y = 0;
   if (cursor.pageX || cursor.pageY)
      {
      x = cursor.pageX;
      y = cursor.pageY;
      }
   else if (cursor.clientX || cursor.clientY)
      {
      x = cursor.clientX + document.body.scrollLeft;
      y = cursor.clientY + document.body.scrollTop;
      }
   x -= imageMapX;
   y -= imageMapY;
   x -= dX;
   y -= dY;
   //  для наглядности координаты точки показываются во временых полях формы справа "X" и "Y"
   (x < 0) ? myForm.coordX.value = 0 : myForm.coordX.value = x;
   (y < 0) ? myForm.coordY.value = 0 : myForm.coordY.value = y;
   //  если курсор не покинул слой с картой, точка перемещается с курсором
   if (x > 0 && y > 0 && x < mapWdt && y < mapHgt)
      {
      myDot.style.left = x + "px";
      myDot.style.top = y + "px";
      }
   }
 
function getObj(name) //  функция захвата объекта, используется при инициализации
   {
   if (document.getElementById) return document.getElementById(name);
   else if (document.all) return document.all[name];
   else if (document.layers) return document.layers[name];
   else return false;
   }
 
function findPosX(obj) //  X-координата слоя
   {
   var currleft = 0;
   if (obj.offsetParent)
   while (obj.offsetParent)
      {
      currleft += obj.offsetLeft
      obj = obj.offsetParent;
      }
   else if (obj.x) currleft += obj.x;
   return currleft;
   }
 
function findPosY(obj) //  Y-координата слоя
   {
   var currtop = 0;
   if (obj.offsetParent)
   while (obj.offsetParent)
      {
      currtop += obj.offsetTop
      obj = obj.offsetParent;
      }
   else if (obj.y) currtop += obj.y;
   return currtop;
   }
 
function init()  //  инициализация
   {
   dX = 7; //  смещение для точки
   dY = 7;
   myForm = getObj("mapForm"); //  форма
   imageMap = getObj("schemePlace"); //  слой с картой
   imageMap.onmouseover = getCoords;
   // ширина и высота слоя - смещение чтобы точка за пределы картинки даже не думала уходить
   mapWdt = imageMap.offsetWidth - dX;
   mapHgt = imageMap.offsetHeight - dY;
 
   myDot = getObj("magDot"); //  точки
   myDot2 = getObj("magDot2");
   }
 
try //  ожидание загрузки страницы и вызов функции инициализации
   {
   window.addEventListener("load", init, false);
   }
 
catch(e)
   {
   window.onload = init;
   }
</script>

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


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

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

8   голосов , оценка 4 из 5
Похожие ответы