一个数组Point()型dixing_point[],每个point的x,y都是随机生成,算法思路是遍历所有point,如果角色坐标x,y在任何point的20范围以外,储存当前x,y的位置为save_x,save_y,如果进入任何point范围,则不作记录,反过来将x,y读取成之前记录的坐标。
我大概知道算法的漏洞在哪里,在系统判断point1坐标的时候,我可能进入了ponit2并记录了坐标。但循环如此之快,按理来说应该有可能实现。
现在的实际情况是:10个随机生成的障碍,总有一个且只有一个确实起作用了。其它9个障碍和空气一样。。。请求高手们告诉我为什么T_T
地形算法如下:
private void checkDixing(){
Thread checkThread = new Thread(new Runnable(){
public void run(){
while(true){
for(Point i:dixing_point){
//System.out.println(i);
if(Math.abs(me_x - i.x)<20 && Math.abs(me_y - i.y)<20){
x=save_x;
y=save_y;
}
else{
save_x=x;
save_y=y;
}
}
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}}});
checkThread.start();
}