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;
}
}
// ...
}
這和預期的一樣,導致了獵人的一個非常愚蠢的行爲,現在我想知道,因爲我沒有使用瓷磚地圖,並且不能僅僅使用數組來表示獵人的嘗試,是否可以有任何算法方法讓獵人找到正確的道路 迷宮?
我已經掙扎了很多數學,現在我的大腦出現了故障。如果您有任何想法,請幫助我。