2011-01-31 3 views
1

저는 ShiVa3d에 대해 매우 새롭고 iOS에 대해 상당히 새로운 것입니다.iOS 내에서 ShiVa 코드 호출

iPad에서 실행되는 앱을 개발하고 싶습니다. 나는 ShoVa의 iOS 및 간단한 루아 코드에서 실행될 객관적으로 많은 논리를 작성할 것입니다.

1) 내 응용 프로그램을로드하고 볼 수 하나의 모델을해야합니다 :

여기에 내가하고 싶은 것에 매우 간단한 예입니다. 내 루아 시바 코드 내부

2) MainAI의 일환으로, 나는 z는의이 방법 "ShiVaCameraToPostition (objX, objY, objZ)"

을 부르 자, 같은 X, Y 등의 매개 변수를 사용하는 방법을 만듭니다

3) 내 IOS 목표 -C 코드 내에서이 "ShiVaCameraToPostition"메서드를 매개 변수와 함께 호출하려는 경우

이 방법이 가능합니까?

어떻게해야합니까? 문서에서 무엇을 찾아야합니까? 사람들이 지적 할 수있는 예가 있습니까?

미리 감사드립니다. 위의 내용이 모호한 경우 알려주십시오.

+0

시바는 죽었어요. 그들은 가짜 v2.0 판매를 할인 된 가격으로 판매하지만 2 년 후에도 여전히 v2.0을 출시하지 않습니다. – dns

답변

1

좋아요, 성공했습니다. 모범 사례를 넘어서 머리 위로 나를 치지 말고, 나는 단지 이것을 얻고 싶었습니다.

그래서 나는 더러운 작업을 할 클래스를 만들었습니다. ShivaInterface라고 부르 자고합니다.

#import <Foundation/Foundation.h> 

@interface ShivaInterface : NSObject{ 

} 

+(const void*)getMyParams:(NSNumber*)x andY:(NSNumber*)y; 

@end 

을 그리고로 구현 : 다음과 같이

ShivaInterface.h 
ShivaInterface.mm /*** note the .mm ***/ 

이 헤더이었다

#import "ShivaInterface.h" 
#import "S3DXPlugin.h" //is this the correct thing to include? it worked for me 

@implementation ShivaInterface 

+(const void*)getMyParams:(NSNumber*)x andY:(NSNumber*)y{ 
    static S3DX::AIVariable args[2]; 
    args[0].SetNumberValue([x floatValue]); 
    args[1].SetNumberValue([y floatValue]); 
    return args; 
} 
@end 

그럼 내 순수의 Obj-C의 방법 : 작동

const void *params = [ShivaInterface getMyParams:[NSNumber numberWithFloat:100.0f] andY:[NSNumber numberWithFloat:100.0f]]; 
S3DClient_SendEventToCurrentUser("MainAi","onDoRotate",2,params); 

, 나는 그것이 아름답 지 않고, 광고가 부족하다는 것을 깨닫습니다. C/C++에 대한 이해가 도움이되지 않을 수도 있습니다.

(여기에 전체 스레드 : http://www.stonetrip.com/developer/forum/viewtopic.php?p=29073#p29073)

0

당신은 그것을 보일 것 시바 방법을 호출 할 수 없습니다, 당신이 사용하는 핸들러를 호출해야합니다 :

S3DClient_SendEventToCurrentUser("MainAI","onMyHandler",0);

3 번째와 4 번째 매개 변수는 배열의 인수 및 인수의 수입니다 (필요 그것을 별도로 조사하십시오).