Comment déplacer une image autour avec les touches fléchées javascript

J'ai récemment commencé à développer un petit bout de javascript jeu, juste pour le plaisir. L'idée est que vous avez commandé un petit point avec les touches fléchées (ou awsd ou je n'aime pas ce qu') à l'intérieur d'une zone à l'écran. Des petits rectangles aurait ensuite été transporté sur tous les bords de la boîte et le progrès à travers elle. vous devez éviter tout contact avec eux. Le projet s'est avéré être plus difficile que ce que j'attendais et je ne pouvais pas obtenir le mouvement à l'œuvre. Si vous pouviez m'aider ce serait génial. aussi, n'hésitez pas à prendre le concept et le peu que j'ai fait jusqu'à présent et de faire ce que vous voulez avec elle. Je serais intéressé de voir vos résultats. Ci-dessous le code que j'ai utilisé pour la fraie, sans aucun mouvement de scripts. J'ai été en utilisant l'idée de base de ce code pour faire le mouvement:

var x = 5; //Starting Location - left
var y = 5; //Starting Location - top
var dest_x = 300;  //Ending Location - left
var dest_y = 300;  //Ending Location - top
var interval = 2; //Move 2px every initialization

function moveImage() {
    //Keep on moving the image till the target is achieved
    if(x<dest_x) x = x + interval; 
    if(y<dest_y) y = y + interval;

    //Move the image to the new location
    document.getElementById("ufo").style.top  = y+'px';
    document.getElementById("ufo").style.left = x+'px';

    if ((x+interval < dest_x) && (y+interval < dest_y)) {
        //Keep on calling this function every 100 microsecond 
        // till the target location is reached
        window.setTimeout('moveImage()',100);
    }
}

corps principal:

<html>
<head>
<style type="text/css">
html::-moz-selection{
background-color:Transparent;
}
html::selection {
background-color:Transparent;
}
img.n {position:absolute; top:0px; width:5px; height:10px;}
img.e {position:absolute; right:0px; width:10px; height:5px;}
img.s {position:absolute; bottom:0px; width:5px; height:10px;}
img.w {position:absolute; left:0px; width:10px; height:5px;}
#canvas {
width:300px;
height:300px;
background-color:black;
position:relative;
}
</style>
<script type="text/javascript">
nmecount=0
function play(){
spawn()
var t=setTimeout("play()",1000);
}
function spawn(){
var random=Math.floor(Math.random()*290)
var side=Math.floor(Math.random()*5)
var name=1
var z=10000
if (side=1)
{
var nme = document.createElement('img');
nme.setAttribute('src', '1.png');
nme.setAttribute('class', 'n');
nme.setAttribute('id', name);
nme.setAttribute('style', 'left:'+random+'px;');
nme.onload = moveS;
document.getElementById("canvas").appendChild(nme);
}
if (side=2)
{
var nme = document.createElement('img');
nme.setAttribute('src', '1.png');
nme.setAttribute('class', 'e');
nme.setAttribute('id', name);
nme.setAttribute('style', 'top:'+random+'px;');
nme.onload = moveW;
document.getElementById("canvas").appendChild(nme);
}
if (side=3)
{
var nme = document.createElement('img');
nme.setAttribute('src', '1.png');
nme.setAttribute('class', 's');
nme.setAttribute('id', name);
nme.setAttribute('style', 'left:'+random+'px;');
nme.onload = moveN;
document.getElementById("canvas").appendChild(nme);
}
if (side=4)
{
var nme = document.createElement('img');
nme.setAttribute('src', '1.png');
nme.setAttribute('class', 'w');
nme.setAttribute('id', name);
nme.setAttribute('style', 'top:'+random+'px;');
nme.onload = moveE;
document.getElementById("canvas").appendChild(nme);
}
name=name+1
}
</script>
</head>
<body onLoad="play()">
<div id="canvas">
<img id="a" src="1.png" style="position:absolute; z-index:5; left:150px; top:150px; height:10px; width=10px;" />
<button onclick="moveleft()"><</button>
</body>
</html>
Ce n'est pas la réponse à votre question, mais, corriger votre style à la fin de la balise img avec l'id 'un'. Vous avez height:10px; width=10px; où la largeur doit être de width:10px;.

OriginalL'auteur Quinn | 2011-08-27