0
我正在与一群迷宫一起在iPhone游戏上,并且有这个小人在迷宫里追逐你。iphone应用程序 - 迷宫解决
我不使用的OpenGL ES也不瓦片地图,所以目前是由xcode中的CGRectsIntersectsRect功能与每个壁是一个IB变量,种这样执行碰撞检测:
float hunterdiffx = abs(hunter.center.x - hunterDest.x);
float hunterdiffy = abs(hunter.center.y - hunterDest.y);
if((hunterdiffx!=0.0)&&(hunterdiffx>(1.0*diffy))&&(!hunterCollided)){
//NSLog(@"diffx >");
hunterVel.y = 0;
if(hunterDest.x>(hunter.center.x+3)){
//NSLog(@"x >");
hunterVel.x = 3;
}
else if(hunterDest.x<(hunter.center.x-3)){
//NSLog(@"x <");
hunterVel.x= -3;
}
//when rabbit reaches the destination
else if((hunter.center.x>(hunterDest.x-3)) && (hunter.center.x < (hunterDest.x+3))){
//NSLog(@"x =");
//NSLog(@"one side reach");
hunterVel.x = 0;
hunterVel.y = 0;
}
}
和
if(CGRectIntersectsRect(hunter.frame, border1.frame){
hunterCollided = TRUE;
if(hunterVel.x==0){
NSLog(@"vertical collision");
if(hunterVel.y>0){
hunter.center = CGPointMake(hunter.center.x, hunter.center.y -10);
}
if(hunterVel.y<0){
hunter.center = CGPointMake(hunter.center.x, hunter.center.y +10);
}
hunterVel.y=0;
if(hunterDest.x > hunter.center.x){
hunterVel.x=3;
}
if(hunterDest.x < hunter.center.x){
hunterVel.x=-3;
}
}
// ...
}
这和预期的一样,导致了猎人的一个非常愚蠢的行为,现在我想知道,因为我没有使用瓷砖地图,并且不能仅仅使用数组来表示猎人的尝试,是否可以有任何算法方法让猎人找到正确的道路 迷宫?
我已经挣扎了很多数学,现在我的大脑出现了故障。如果您有任何想法,请帮助我。