📄 pointcreator.java
字号:
import java.util.*;
/*
* Created on 2005-7-11
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
/**
* @author Administrator
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
//按时序产生随机的坐标
public class PointCreator
{
private Box bound; //生成边界范围
private Timer timer; //计时器
private TimerTask timerTask; //时序任务
private Point startPoint,point; //生成的坐标
private long startDelay; //开始间隔时间
private long delay; //坐标生成间隔时间
private int tag;
private MySprite traceTarget;
private MySprite owner;
public MySprite getTraceTarget() {
return traceTarget;
}
public void setTraceTarget(MySprite traceTarget) {
this.traceTarget = traceTarget;
}
public PointCreator(Box box,Point startPoint)
{
this.bound=box;
this.startPoint=startPoint;
this.point=new Point(startPoint.x,startPoint.y);
startDelay=3000;
delay=3000; //默认n秒生成一个新坐标
}
//随机生成坐标
private void createPoint()
{
int x1=bound.x;
int y1=bound.y;
int x2=bound.x+bound.w;
int y2=bound.y+bound.h;
Random ran=new Random();
int scale=Integer.MAX_VALUE/(y2-y1);
int ydelta=Math.abs(ran.nextInt())/scale;
int newY=y1+ydelta;
point.y=newY;
scale=Integer.MAX_VALUE/(x2-x1);
int xdelta=Math.abs(ran.nextInt())/scale;
long newX=x1+xdelta;
point.x=(int)newX;
//System.out.println("生成新坐标("+point.x+","+point.y+")");
if(traceTarget!=null && owner!=null)
{
int distance=Math.abs(owner.getX()-traceTarget.getX())+Math.abs(owner.getY()-traceTarget.getY());
if(distance<150)
{
point.x=traceTarget.getX();
point.y=traceTarget.getY();
}
}
}
boolean timerRunning;
public void start()
{
if(!timerRunning)
{
timer=new Timer();
timerTask=new TimerTask()
{
public void run()
{
createPoint();
}
};
timer.schedule(timerTask,startDelay,delay);
}
}
public void stop()
{
if(timer!=null)timer.cancel();
timer=null;
timerTask=null;
timerRunning=false;
}
public Point getPoint()
{
return point;
}
public long getDelay() {
return delay;
}
public void setDelay(long delay) {
this.delay = delay;
}
public Box getBound() {
return bound;
}
public void setBound(Box bound) {
this.bound = bound;
}
public long getStartDelay() {
return startDelay;
}
public void setStartDelay(long startDelay) {
this.startDelay = startDelay;
}
public MySprite getOwner() {
return owner;
}
public void setOwner(MySprite owner) {
this.owner = owner;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -