<ole>
- og den samme kode med de værste fejl rettet, så det virker i de fleste browsere :)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"
http://www.w3.org/TR/html4/loose.dtd"><HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE>
<script type="text/JavaScript">
gE = function(ID){return document.getElementById(ID)}
var bricksArr = new Array()
rows = 5
cols = 10
xGap = 19
yGap = 49
fadeLevels = 2
for (n=0;n<rows;n++){
v = n*xGap
for (i=0;i<cols;i++){
num = (n*cols)+i
bricksArr[num] = new Array()
h = i*yGap
bricksArr[num][0] = h+10
bricksArr[num][1] = h+50
bricksArr[num][2] = v+30
bricksArr[num][3] = v+40
bricksArr[num][4] = fadeLevels
}
}
var iLaneWidth = 500
var iLaneHeight = 400
var iBallWidth = 10
var iBallHeight = 10
var iBatWidth = 50
var iBatHeight = 10
var iBatTop = iLaneHeight - 50
var iBatLeft = iLaneWidth/2
var bBatMove = false
var zBat = 0
var iTop = iBatTop
var iLeft = 10
var zTopOriginal = -2
var zLeftOriginal = 1
var zTop = zTopOriginal
var zLeft = zLeftOriginal
var hitBrick = 0
var lastBrick = -1
var hitBat = false
var hitWall = false
function moveBall(){
hitWall = (iTop >= iLaneHeight-iBallHeight || iTop <= 0) ? true : false
if (!hitWall){
hitBat = (iLeft+iBallWidth > iBatLeft && iLeft < iBatLeft+iBatWidth && iTop >= iBatTop-iBallHeight && iTop <= iBatTop+iBallHeight) ? true : false
if (hitBat){
var lastBrick = -2
zLeft = (iLeft > iBatLeft+(iBatWidth/2)-(iBallWidth/2)) ? zLeftOriginal : zLeftOriginal*-1
if (iLeft > iBatLeft+(iBatWidth*0.75)-(iBallWidth/2)) zLeft = zLeftOriginal*2
if (iLeft < iBatLeft+(iBatWidth*0.25)-(iBallWidth/2)) zLeft = zLeftOriginal*-2
}else{
if (hitBrick == 0){
for (i=0;i<bricksArr.length;i++){
if (hitBrick == 0 && i != lastBrick && bricksArr[i][4]>0){
hitBrick = intersects(iLeft, iLeft+iBallWidth, iTop, iTop+iBallHeight, bricksArr[i][0], bricksArr[i][1], bricksArr[i][2], bricksArr[i][3])
if (hitBrick > 0){
lastBrick = i
i = bricksArr.length
}
}
}
if (lastBrick >= 0){
bricksArr[lastBrick][4] -= 1
gE("brick"+lastBrick).style.filter = "progid:DXImageTransform.Microsoft.Alpha(Opacity=" + 100/fadeLevels*bricksArr[lastBrick][4] + ", Style=0)"
gE("brick"+lastBrick).style.MozOpacity = (100/fadeLevels*bricksArr[lastBrick][4])/100
gE("brick"+lastBrick).style.opacity = (100/fadeLevels*bricksArr[lastBrick][4])/100
}
}else{
hitBrick++
}
}
}else{
var lastBrick = -1
}
if (hitBat || hitWall || hitBrick==1) zTop = zTop*-1
if (iLeft >= iLaneWidth-iBallWidth || iLeft <= 0 || hitBrick==2) zLeft = zLeft*-1
if (hitBrick > 0) hitBrick = -1
if (bBatMove && iBatLeft <= 0 && zBat < 0) bBatMove = false
if (bBatMove && iBatLeft >= iLaneWidth - iBatWidth && zBat > 0) bBatMove = false
if (bBatMove){
iBatLeft += zBat
gE("bat").style.left = iBatLeft + "px";
}
iTop += zTop
iLeft += zLeft
gE("ball").style.top = iTop + "px";
gE("ball").style.left = iLeft + "px";
t = window.setTimeout("moveBall()", 10)
}
function intersects(aL, aR, aT, aB, bL, bR, bT, bB){
var returnVar = 0
var zL = aR-bL
var zR = aL-bR
var zT = aB-bT
var zB = aT-bB
if (zL*zR <=0 && zB*zT <=0){
minX = Math.min(Math.abs(zL),Math.abs(zR))
minY = Math.min(Math.abs(zT),Math.abs(zB))
returnVar = (minX >= minY) ? 1 : 2
}
return returnVar
}
function init(){
gE("lane").style.width = iLaneWidth + "px";
gE("lane").style.height = iLaneHeight + "px";
gE("ball").style.width = iBallWidth + "px";
gE("ball").style.height = iBallHeight + "px";
gE("ball").style.top = "10px"
gE("ball").style.left = "10px"
gE("bat").style.width = iBatWidth + "px";
gE("bat").style.height = iBatHeight + "px";
gE("bat").style.top = iBatTop + "px";
gE("bat").style.left = iBatLeft + "px";
for (i=0;i<bricksArr.length;i++){
gE("bricks").innerHTML += "<div id=brick" + i + " style=\"position: absolute; width: 0px; height: 0px; background-color: white; font-size: 1px;\"> </div>"
gE("brick"+i).style.width = (bricksArr[i][1] - bricksArr[i][0]) + "px";
gE("brick"+i).style.height = (bricksArr[i][3] - bricksArr[i][2]) + "px";
gE("brick"+i).style.left = bricksArr[i][0] + "px";
gE("brick"+i).style.top = bricksArr[i][2] + "px";
gE("brick"+i).style.filter = "progid:DXImageTransform.Microsoft.Alpha(Opacity=100, Style=0)"
gE("brick"+i).style.MozOpacity = 1;
gE("brick"+i).style.opacity = 1;
}
}
function moveKeys(e,bState){
var i = e.keyCode;
bBatMove = bState
if (bBatMove){
if (i == 39) zBat = 3
if (i == 37) zBat = -3
}
}
</script>
</HEAD>
<BODY onload="init(); moveBall()" topmargin=0 leftmargin=0 onKeydown="moveKeys(event,true)" onKeyUp="moveKeys(event,false)">
<div id=lane style="position: absolute; top: 0px; left: 0px; width: 0px; height: 0px; background-color: green; font-size: 1px;"></div>
<div id=bricks></div>
<div id=ball style="position: absolute; width: 0px; height: 0px; background-color: white; font-size: 1px;"> </div>
<div id=bat style="position: absolute; width: 0px; height: 0px; background-color: white; font-size: 1px;"> </div>
</BODY>
</HTML>
/mvh
</bole>