ios için scenekit kullanarak oyun oynamak istiyorum. SceneKit şablonuyla başladım Xcode bize (dönen bir uçak) veriyor. Kullanıcının ekranda göz atıp takmadığını anlamak için zaten bir tane de HandleTap yöntemi sağlanmıştır. Ben bir SCNBox yapmak ve kullanıcı üzerinde musluk olup olmadığını bilmek istiyorum, ancak handleTap nasıl çalıştığını karıştırıyorum. Kutu geometrisini handleTap'a eklemem gerekir mi? Birisi ekranın ortasına nasıl tıklanıp tıklanmadığını fark edebilecek bir kutuya nasıl sahip olabileceğinizi gösterir. İşte SceneKit'teki nesne tıklandığında Recgnize
handleTap kodudur: şablonu yalnızca malzeme arar- (void) handleTap:(UIGestureRecognizer*)gestureRecognize{
// retrieve the SCNView
SCNView *scnView = (SCNView *)self.view;
// check what nodes are tapped
CGPoint p = [gestureRecognize locationInView:scnView];
NSArray *hitResults = [scnView hitTest:p options:nil];
// check that we clicked on at least one object
if([hitResults count] > 0){
// retrieved the first clicked object
SCNHitTestResult *result = [hitResults objectAtIndex:0];
// get its material
SCNMaterial *material = result.node.geometry.firstMaterial;
// highlight it
//[SCNTransaction begin];
//[SCNTransaction setAnimationDuration:0.5];
// on completion - unhighlight
[SCNTransaction setCompletionBlock:^{
[SCNTransaction begin];
[SCNTransaction setAnimationDuration:0.5];
material.emission.contents = [UIColor blackColor];
[SCNTransaction commit];
}];
material.emission.contents = [UIColor redColor];
[SCNTransaction commit];
}
}
nedir:
Eğer sonucun düğüme karşı kontrol etmek isteyeceksiniz result.node? –
da, şablonda 'SCNHitTestResult * sonucu var = [hitResults objectAtIndex: 0]; 've' node 'sadece SCNHitTestResult' – mnuages
' da bir özelliktir. Bu yüzden yeni bir tanıtıcı yöntemini çağırmam gerekiyor mu, yoksa sadece uygulayabilir miyim yöntemde if ifadesi –