Помогите создать приложение игру, в которой игрок "стреляет" по невидимой цели - 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>