AdamDrechsel/SVG-inlamning — Issue #1: Bollkoll med paddel (utkast)
Author: itpastorn
Created: 2012-01-23 14:05:35+00:00
State: open

var rpad = document.getElementById("rect1");
var lpad = document.getElementById("rect2");

window.onkeydown = function (e) {
var rpad_y = rpad.getAttribute("y");
var lpad_y = lpad.getAttribute("y");
switch(e.keyCode) {
case 38:
if (rpad_y >= 15){
rpad_y -= 20;
rpad.setAttribute("y", rpad_y);
}
break;

case 40:
if (rpad_y <= 430){
rpad.setAttribute("y", +rpad_y + 20);
}
break;

case 87:
if (lpad_y >= 15){
lpad.setAttribute("y", lpad_y -20);
}
break;

case 83:
if (lpad_y <= 430){
lpad.setAttribute("y", +lpad_y + 20);
}
break;
}
return false;
}
var totspeed = 10;
var startvinkel = Math.random() * 0.5 * Math.PI - Math.PI * 0.25;

var boll = {
x : 600,
y : 300,
xspeed : Math.cos(startvinkel) * totspeed,
yspeed : Math.sin(startvinkel) * totspeed,
bollen : document.getElementById("bollen"),
r : bollen.getAttribute("r")
};
function moveball() {
if ( boll.y < 20 ) {
boll.yspeed = Math.abs(boll.yspeed);
}
// studs uppe
else if (boll.y > 580) {
boll.yspeed = -Math.abs(boll.yspeed);
}
// studs nere
if (boll.x < 50) {
// Träffar den paddeln?
if ( boll.y >= lpad_y - boll.r && boll.y <= lpad_y + 150 + boll.r ) {
// Träff
// Paddelns mitt lpad_y + 75
var vinkel = (boll.y - lpad_y - 75) * Math.PI /290;
boll.xspeed = Math.cos(startvinkel) * totspeed;
boll.yspeed = Math.sin(startvinkel) * totspeed;
}
if ( boll.x < 0 ) {
return false;
}
}
else if (boll.x > 1310){
boll.xspeed = -Math.abs(boll.xspeed);
}
boll.x += boll.xspeed;
boll.y += boll.yspeed;
boll.bollen.setAttribute("cx", boll.x);
boll.bollen.setAttribute("cy", boll.y);
console.log(boll.x);
window.setTimeout(moveball, 20);
}
moveball();