var ball = new Array();
var bx = new Array();
var by = new Array();
var dx = new Array();
var dy = new Array();
function sample() {
for(s=1;s<101;s++){
ball[s] = 0;
dx[s] = 0;
dy[s] = 0;
bx[s] = 0;
by[s] = 0;
}
var timer;
var delay = 1000;
var loop = function () {
var sub = new ex();
sub.ball = ball;
sub.bx = bx;
sub.by = by;
sub.dx = dx;
sub.dy = dy;
sub.move();
ball = sub.ball;
bx = sub.bx;
by = sub.by;
dx = sub.dx;
dy = sub.dy;
if (Math.random() > 0.5) {
var sub2 = new ex();
sub2.ball = ball;
sub2.bx = bx;
sub2.by = by;
sub2.dx = dx;
sub2.dy = dy;
sub2.strike();
ball = sub2.ball;
bx = sub2.bx;
by = sub2.by;
dx = sub2.dx;
dy = sub2.dy;
}
paint();
clearTimeout(timer);
timer = setTimeout(loop, delay);
}
loop();
}
function paint(){
var sub3=new svgpaint();
str="<svg width=\"500\" height=\"500\">";
str=str+sub3.rect(0,0,500,500,"blue");
for(s=1;s<101;s++){
if(ball[s]>50)str=str+sub3.rect(bx[s],by[s],5,5,"black");
}
str=str+"</svg>";
$("#memo").html(str);
}
class ex{
bx:number[]=new Array();
by:number[]=new Array();
dx:number[]=new Array();
dy:number[]=new Array();
ball:number[]=new Array();
g:number;
move():void{
var s:number;
this.g=10;
for(s=1;s<101;s++){
this.dy[s]=this.dy[s]+this.g;
}
for(s=1;s<101;s++){
this.bx[s]=this.bx[s]+this.dx[s];
this.by[s]=this.by[s]+this.dy[s];
}
var h:number;
for(s=1;s<101;s++){
h=0;
if(this.bx[s]>500)h=h+1;
if(this.dx[s]>0)h=h+1;
if(h==2)this.dx[s]=-this.dx[s];
h=0;
if(this.bx[s]<0)h=h+1;
if(this.dx[s]<0)h=h+1;
if(h==2)this.dx[s]=-this.dx[s];
}
for(s=1;s<101;s++){
if(this.by[s]>500)this.ball[s]=0;
}
}
strike():void{
var s,sx:number;
sx=0;
for(s=1;s<101;s++){
if(this.ball[s]<50)sx=s;
}
if(sx>0){
this.bx[sx]=250;
this.by[sx]=0;
var n1:number;
var n2:number;
n1=10*Math.random();
n2=Math.floor(n1)-5;
this.dx[sx]=n2;
this.dy[sx]=0;
this.ball[sx]=100;
}
}
}
最終更新:2015年10月04日 10:30