import java.awt.*; public class Mov{ Dimension sz; Dimension moveSz; public Point p; Point dir; int moveCnt; public int moveCntN; public Mov(Dimension areaSz, Dimension sz, Point p){ this.sz = sz; moveSz = new Dimension(areaSz.width-sz.width, areaSz.height-sz.height); this.p = p; chgp(); dir = new Point(0,0); chgdir(); moveCnt = 0; moveCntN = Rnd.get(30,50); } public Mov(Dimension areaSz, Dimension sz){ this(areaSz, sz, new Point(0,0)); } public void chgp(){ p.x = Rnd.get(0,moveSz.width); p.y = Rnd.get(0,moveSz.height); } public void chgdir(){ dir.x = Rnd.sget(3,10); dir.y = Rnd.sget(3,10); } public void move(){ p.x += dir.x; p.y += dir.y; if(p.x<0){ dir.x = -dir.x; p.x = -p.x; }else if(p.x>moveSz.width){ dir.x = -dir.x; p.x = moveSz.width - (p.x - moveSz.width); } if(p.y<0){ dir.y = -dir.y; p.y = -p.y; }else if(p.y>moveSz.height){ dir.y = -dir.y; p.y = moveSz.height - (p.y - moveSz.height); } if(++moveCnt>=moveCntN){ moveCnt = 0; chgdir(); } } public Rectangle getRect(){ return new Rectangle(p, sz); } } // EOF