我正在爲iOS開發一款駕駛遊戲,其中一輛汽車(UIView)放在谷歌地圖ios api的頂部。我無法檢測出現在地圖上的車輛和灰色建築物的碰撞。谷歌地圖iOS賽車遊戲碰撞檢測?
我一直在嘗試通過像素顏色來實現,即檢查汽車前方的像素顏色是否爲建築物屋頂的顏色(灰色)。沒有直接訪問iPhone像素的顏色,所以我使用谷歌地圖截圖方法來獲取圖像並從中獲取像素顏色。問題是,我只能拍攝剛剛離開的屏幕。我正在使用 mapImage = [GMSScreenshot screenshotOfMainScreen];
。我也嘗試過獲得窗口和屏幕,並呼籲mapImage = [GMSScreenshot screenshotOfScreen:topWindow.screen];
都具有相同的效果。
這個問題的解決方案是什麼?你能想出更好的方法來處理這種情況下的碰撞嗎?反向地理編碼是否有能力檢測建築物與街道的頂部? 感謝您的幫助!
編輯: 圖片: Interface Builder的:左邊是主菜單,右邊是遊戲。左上角的UI圖像視圖被設置爲當前屏幕截圖圖像,以供參考。這我怎麼知道它是關閉的
遊戲玩法,正如你所看到的,它只顯示前一個菜單。
我的viewdidLoad函數:除了這與獲取圖像相關的內容。
- (void)viewDidLoad
{
[super viewDidLoad];
cameraPosition = CLLocationCoordinate2DMake(42.271291, -83.729918);
moveDistance = .00055;
cA = [UIColor colorWithRed:.937255 green:.921569 blue:.886275 alpha:1];
camera = [GMSCameraPosition cameraWithLatitude:cameraPosition.latitude
longitude:cameraPosition.longitude
zoom:19
bearing:0
viewingAngle:0];
mapView_ = [GMSMapView mapWithFrame:CGRectMake(0, 0, 480, 300) camera:camera];
mapView_.myLocationEnabled = NO;
[self.view addSubview:mapView_];
car_ = [[Car alloc] initWithFrame:CGRectMake(240, 150, 13, 29) withImage:[UIImage imageNamed:@"carA-01.png"]];
[self.view addSubview:car_];
[self.view addSubview:controllerView];
updateClock = [NSTimer scheduledTimerWithTimeInterval:(1/20)
target:self
selector:@selector(update)
userInfo:nil
repeats:YES];
crashClock = [NSTimer scheduledTimerWithTimeInterval:1
target:self
selector:@selector(checkCrash)
userInfo:nil
repeats:YES];
UIWindow *topWindow = [[UIApplication sharedApplication].windows objectAtIndex:0];
mapImage = [GMSScreenshot screenshotOfScreen:topWindow.screen];
// mapImage = [GMSScreenshot screenshotOfMainScreen];
}
你能顯示更多的代碼(也可能是屏幕截圖)嗎?只有2條線不能幫助 – Raptor 2013-04-23 06:07:43