1

我试图在屏幕上移动一个对象,就像在游戏几何战争中一样。我可以很好地旋转对象,但是我似乎无法让它根据它所面对的方向移动。我在这里有这段代码,我认为这样做是正确的,但我不断收到语法错误:

spriteObject.x = spriteObject.x + speed*cos(Angle)
spriteObject.y = spriteObject.y + speed*sin(Angle)

错误是“请求成员 x 不在结构或联合中”。你如何在 Objective-c/cocos2d 语法中做到这一点?

4

1 回答 1

1

查看sprite 类的文档,您需要执行以下操作:

float angle = spriteObject.rotation
spriteObject.position.x = spriteObject.position.x + speed*cos(angle)
spriteObject.position.y = spriteObject.position.y + speed*sin(angle)

编辑(回应评论):

我看到你正在为 iPhone 编程,这意味着你需要使用iphone cocos2d 库,而不是我之前链接的那个

语法会有所不同,示例代码也会有所不同,因为 iPhone 版本使用 Objective-C 语言,而原始 cocos2d 使用 Python。

谷歌代码在 iPhone 版本的 cocos2d 上有很好的文档,包括示例代码

根据该示例代码,您必须执行以下操作:

float newX = spriteObject.position.x + speed * cos(angle);
float newY = spriteObject.position.y + speed * sin(angle);
spriteObject.position =  ccp( newX, newY );
于 2009-07-16T18:36:10.360 回答