2011-01-31 29 views
1

我对ShiVa3d还是很新的,对iOS来说还是比较新的。从iOS调用ShiVa代码

我想开发一款在iPad上运行的应用程序。我将在Objective-C中编写相当多的逻辑,这些逻辑可以在iOS上运行,并在ShiVa中运行一些简单的lua代码。

这里是想我做一个很简单的例子:

1)我的应用程序将有一个单一的模式,这将载入和查看。

2)在我的卢阿婆的代码,作为MainAI的一部分,我将创建一个接受参数,如X,Y的方法,Z让我们调用这个方法 “ShiVaCameraToPostition(物objx,objY,objZ)”

3)在我的iOS Objective-C代码中,我想称之为“ShiVaCameraToPostition”方法,参数为

这可能吗?

我该怎么做呢?我应该在文档中寻找什么?有没有人可以指出的例子?

非常感谢提前。如果上述内容不明确,请让我知道。

+0

湿婆死了。他们做虚假v2.0销售(以折扣价),但直到2年后,他们仍然没有发布v2.0 – dns 2013-12-25 07:44:20

回答

1

好吧,各种成功。请不要在最佳实践中击败我,我只是想让这一切顺利。

所以,我创建了一个类来完成我的肮脏工作,我们称之为ShivaInterface。

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

标题如下:

#import <Foundation/Foundation.h> 

@interface ShivaInterface : NSObject{ 

} 

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

@end 

而且为实现:

#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++可能无济于事。

(Full thread here:http://www.stonetrip.com/developer/forum/viewtopic.php?p=29073#p29073

0

你不能叫湿婆方法这似乎必须使用调用处理程序:

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

的第三和第四参数是一个数组的论点和论据号码(需分别研究一下)。