/**
Pong - Enkel versjon
Ulven 16.11.11
*/
import flash.events.TimerEvent; //Skal bruke klassene TimerEvent
import flash.utils.Timer; //og Timer fra rammeverket
import flash.events.KeyboardEvent;
/* Konstanter */
const xmax=400; //Banestørrelse horisontalt
const ymax=400; //Banestørrelse vertikalt
const r=15; //Radius på ball
const h=20; //Høyde på rekkert
const b=80; //Bredde på rekkert
/* Tilstand i noen globale variabler */
var timer:Timer;
var stepx=2; //Bevegelsesfart per "tikk"
var stepy=3;
/* Hovedprogram */
stop(); //stopp "filmen", har bare en keyframe, så egentlig undødvendig her
ball.w=2*r; //Setter størrelse på ball og rekkert
ball.h=b;
rekkert.w=b;
rekkert.h=h;
ball.x=xmax/2; //Plasserer ball og rekkert på skjermen
ball.y=ymax/2;
rekkert.x=xmax/2;
rekkert.y=ymax-h;
/* Oppretter nytt objekt fra klassen Timer.
timer sender en TimerEvent hvert sekund i det uendelige. ("0" betyr uendelig ikke 0 ganger!)
(1000 hadde gitt 1000 ganger.)
*/
timer = new Timer(0.5,0); //timer sender en TimerEvent hvert halve sekund.
timer.addEventListener(TimerEvent.TIMER,flyttBall); //flyttBall()
function flyttBall(evt):void {
if(ball.x<r) {stepx=-stepx;} //utenfor til venstre?
if(ball.y<r) {stepy=-stepy;} //utenfor over?
if(ball.x>(xmax-r) ) {stepx=-stepx;} //utenfor til høyre?
if(ball.y>(ymax-r) ) {stepy=-stepy;} //utenfor under?
/* Kollisjonssjekk.
Kunne brukt ball.hitTestObject(rekkert) istedenfor den relativt
kompliserte betingelsen, men betingelsen illustrerer hvordan man
bygger opp en kompleks betingelse, den kan leses omtrent slik:
Hvis
ball.x til høyre for venstresiden av rekkert og
ball.x til venstre for høyresiden av rekkert og
ball.y nedenfor øvre toppen av rekkert og
ballens bevegelsesretning er nedover
så endrer vi vertikal bevegelse.
Vær opperksom på at x- og y-koordinaten til grafiske objekter
ligger midt i objektet!
*/
if(
(ball.x>(rekkert.x-b/2)) && (ball.x<(rekkert.x+b/2)) &&
(ball.y>=(rekkert.y-rekkert.h/2-r/2)) && (stepy>0) ) {
stepy=-stepy;
}//if
ball.x+=stepx;
ball.y+=stepy;
}//flyttBall()
stage.addEventListener(KeyboardEvent.KEY_DOWN,flyttRekkert); //moveRekkert()
function flyttRekkert(evt):void{
var tastekode=evt.keyCode;
if(tastekode==Keyboard.RIGHT){
rekkert.x+=15;
} else if(tastekode==Keyboard.LEFT){
rekkert.x-=15;
}//if-else
}//moveRekkert()
timer.start();