Tak phoenixv.
Jeg må sige at ser godt ud, men ikke helt så godt som jeg havde håbet. Der er nogle bugs i din kode, som jeg har siddet og rettet på:
- billedet dukker ikke op igen efter at det er fløjet ud af skærmen (den kører kun én gang)
- den flyver kun ind fra venstre og altså ikke fra en tilfældig side
- når man har skudt billedet, og den så dukker op igen (efter at man har rettet pkt 1 selvfølgelig...) så er billedet stadigvæk det 'døde' billede.
Her er hvad jeg har fået:
(Det er nok ikke den pæneste kode der er set, men det skal siges til mit forsvar, at det er det første jeg laver i Java-Script.)
=============================
<html>
<head>
<title>Hit me!</title>
<script>
function fly(){
dir = Math.floor(Math.random()*2);
if(dir == 1){
left();
}
else{
right();
}
}
function left(){
l = 100+(document.all) ? document.body.offsetWidth : window.innerWidth;
t = 0;
var obj;
var h;
doed = new Image();
doed.src = "
http://www.eksperten.dk/img/partner_hp_small.gif";flyver = new Image();
flyver.src = "
http://www.eksperten.dk/img/eksperten_logo.gif";skyd();
}
function right(){
l = -100;
t = 0;
var obj;
var h;
doed = new Image();
doed.src = "
http://www.eksperten.dk/img/partner_hp_small.gif";flyver = new Image();
flyver.src = "
http://www.eksperten.dk/img/partner_poweredbyaccelerator.gif";skyd();
}
function skyd() {
obj = (document.getElementById) ? document.getElementById("targ") : document.all.targ;
document.images["bill"].src = flyver.src;
document.images["bill"].width = 77;
document.images["bill"].height = 49;
w = (document.all) ? document.body.offsetWidth : window.innerWidth;
h = (document.all) ? document.body.offsetHeight : window.innerHeight;
t = Math.floor(Math.random() * (h - 30));
obj.style.top = t;
rand = Math.floor(Math.random() * 3000);
setTimeout(bevaeg, rand);
}
function bevaeg() {
if (dir ==1&&l > -100) {
l -= 10;
obj.style.left = l;
to = setTimeout(bevaeg, 50);
}
else if(dir==0&&l<w+100){
l+=10;
obj.style.left=l;
to = setTimeout(bevaeg, 50);
}
else{fly();}
}
var to;
function ram() {
clearTimeout(to);
document.images["bill"].src = doed.src;
document.images["bill"].width = 100;
document.images["bill"].height = 100;
bned();
}
function bned() {
if (t < h) {
t += 20;
obj.style.top = t;
setTimeout(bned, 50);
}
else{reset();}
}
function reset(){
obj.style.left=-100;
;
fly();
}
</script>
</head>
<body onLoad="fly();" scroll="no">
<div id="targ" onClick="ram();" style="position: absolute; left: -100px; top: 0px; cursor: crosshair;">
<img src="
http://www.eksperten.dk/img/eksperten_logo.gif" width="77" height="49" name="bill">
</div>
</body>
</html>
===================================
Idet der var så mange ting der skulle rettets kan jeg ikke give dig fuld point. Meeeeeen du skal da have noget for din indsats, så du får 40. Er det ok?
Tak for hjælpen
CK