Jeg er ved at lave et simpelt BreakOut spil, og har følgende kode:
- function draw()
- {
- clear();
- circle(x,y,10);
- if (rightDown == 1 && paddlex < cw-paddlew) paddlex += 5;
- else if (leftDown == 1 && paddlex > 0) paddlex -= 5;
- rect(paddlex, ch-paddleh, paddlew, paddleh);
- if (x+dx+10>cw || x+dx-10<0) dx = -dx;
- if (y+dy-5 < 0) dy = -dy;
- else if (y+dy+10 > ch)
- {
- if (x+5 > paddlex && x-5 < paddlex+paddlew) dy=-dy;
- else clearInterval(move);
- }
- y += dy;
- x += dx;
- }
-
- function mouseMove(e) {
- if (e.pageX-paddlew/2 > 0 && e.pageX+paddlew/2 < cw) paddlex = e.pageX-paddlew/2;
- }
- window.addEventListener("load", start, false) //invoke function
-
- var x = 20; //Ball position left
- var y = 15; //Ball position top
- var dx = 2; //Ball direction X
- var dy = 4; //Ball direction Y
- var cw = 400;
- var ch = 600; //Højde på canvas
- var paddlex = 180;
- var paddleh = 10;
- var paddlew = 80;
- var leftDown = 0;
- var rightDown = 0;
-
- var ch = get.ElementById('canvas').style.height;
-
- function start()
- {
- move = setInterval('draw()', 15);
- ctx = document.getElementById("canvas").getContext("2d");
- }
- function circle(x,y,r) {
- ctx.beginPath();
- ctx.arc(x,y,r,0,Math.PI*2,true);
- ctx.closePath();
- ctx.fill();
- }
- function rect(x,y,h,w) {
- ctx.beginPath();
- ctx.fillRect(x,y,h,w);
- ctx.closePath();
- ctx.fill();
- }
- function clear() {
- ctx.clearRect(0,0,cw,ch);
- }
- function keyDown(e) {
- if (e.keyCode == 39) rightDown = 1;
- else if (e.keyCode == 37) leftDown = 1;
- }
- function keyUp(e) {
- if (e.keyCode == 39) rightDown = 0;
- else if (e.keyCode == 37) leftDown = 0;
- }
Variablen "ch" repræsentere højden på canvasen, og jeg har sat den lig med 600. Men jeg ville gerne have at den automatisk indstillede sig efter hvor høj min canvas er, og jeg har derfor prøvet både at sætte den til document.getElementById('canvas').height og document.getElementById('canvas').getAttribute('height'), men begge ting fik mit script til at gå fuldstendig i kage. Hvorfor virker det ikke? Og hvordan skal jeg ellers gøre?