home *** CD-ROM | disk | FTP | other *** search
- function update_balls()
- {
- ball = 1;
- while(stone_in_use >= ball)
- {
- if(in_zone[ball])
- {
- if(!_level0.waiting)
- {
- if(Math.ABS(vx[ball]) + Math.ABS(vy[ball]) == 0)
- {
- lessy = 0;
- lessx = 0;
- }
- else
- {
- lessy = Math.ABS(vy[ball]) / (Math.ABS(vx[ball]) + Math.ABS(vy[ball]));
- lessx = Math.ABS(vx[ball]) / (Math.ABS(vx[ball]) + Math.ABS(vy[ball]));
- }
- if(0 < Vx[ball])
- {
- vx[ball] -= _level0.friction * lessx;
- }
- else
- {
- vx[ball] += _level0.friction * lessx;
- }
- if(0 < Vy[ball])
- {
- vy[ball] -= _level0.friction * lessy;
- }
- else
- {
- vy[ball] += _level0.friction * lessy;
- }
- if(Math.abs(vx[ball]) < ballstop and Math.abs(vy[ball]) < ballstop)
- {
- vy[ball] = 0;
- vx[ball] = 0;
- }
- realx[ball] += vx[ball];
- realy[ball] += vy[ball];
- thisball = eval("stone" + ball);
- thisball._x = realx[ball];
- thisball._y = zoom_origin_y - realy[ball];
- check_walls(ball);
- }
- }
- ball++;
- }
- }
- function check_walls()
- {
- if(Zoox2 - 12 < realx[ball] or realx[ball] < Zoox1 + 12 or 400 - zooy3 - 12.5 < realy[ball])
- {
- trace("***********gone out !***************");
- stone_status[ball] = "crossed";
- stoneboard.display_stones();
- realx[ball] = -9999 * ball;
- realy[ball] = -9999 * ball;
- thisball = eval("stone" + ball);
- thisball._x = realx[ball];
- thisball._y = zoom_origin_y - realy[ball];
- vx[ball] = 0;
- vy[ball] = 0;
- in_zone[ball] = false;
- }
- }
- update_balls();
- yscaledy = realy[1] * -60 / 400 + 60;
- degrees = (- (yscaledy - 317)) * 180 / 282;
- if(allstillc < balls)
- {
- gotoAndPlay(135);
- }
-