UHU-StartseiteInformatikKurseW-Seminar App-ProgrammierungJavascriptCanvas-Element
Squash


Im Head definierte Funktionen

var sx = 250, sy = 330, sw = 40, sh = 20, sv=0
var bx = 250, by = 100, bw = 10, bh = 10, vx=2, vy=4 
var dt=20, timer
function onMouseDown(e){
  if (e.pageX<sx&&sx>0) sv=-5
  else if (e.pageX>sx+sw&&sx+sw<600) sv=5
  else sv = 0
}
function paint(ctx){
  // "BALL"
  ctx.fillStyle="black"
  ctx.fillRect(bx,by,bw,bh) // Ball wird weggezeichnet
  ctx.fillStyle="red"
  if (bx>=600-bw||bx≤0) vx = -vx // linker oder rechter Rand
  if (by≤0) vy = -vy // oberen Rand getroffen
  if (by>330&&bx>sx&&bx<sx+sw) vy=-vy // Schläger getroffen
  if (by>350) window.clearInterval(timer) // rausgefallen
  bx += vx; by += vy; // Ball bewegt sich
  ctx.fillRect(bx,by,bw,bh) // und wird neugezeichnet
  // "SCHLÄGER"
  if (sv!=0){ // nur neuzeichnen, wenn Bewegung vorhanden
  ctx.fillStyle="black"
  ctx.fillRect(sx,sy,sw,sh) // Schläger wegzeichnen
  if (sx>600-sw){ // am rechten Rand anhalten
    sx=600-sw; sv=0;
  } else if (sx<0){ // am linken Rand anhalten
    sx=0
    sv=0
  } else sx += sv // oder weiterbewegen
    ctx.fillStyle="white"
    ctx.fillRect(sx,sy,sw,sh) // neuzeichnen
  }
}



Anweisungen im Body

var canvas=document.getElementById("playGround");
var ctx   =canvas.getContext("2d");
// Szene einmal vorzeichnen...
sv=1
paint(ctx)
sv=0
canvas.addEventListener("mousedown",onMouseDown,false) // auf Maus reagieren
timer=window.setInterval("paint(ctx)",dt) // Schleife immer wieder durchlaufen


optimal sichtbar mit Firefox Formeln mit asciimath Druckversion