我试图像在游戏几何战中一样在屏幕上移动一个物体。我可以很好地旋转对象,但是我似乎无法根据它面向的方向移动它。我在这里有这个代码,我认为这样做是正确的,但我不断收到语法错误:
spriteObject.x = spriteObject.x + speed*cos(Angle)
spriteObject.y = spriteObject.y + speed*sin(Angle)
错误是“请求成员x而不是结构或联合”。你如何用Objective-c / cocos2d语法做到这一点?
答案 0 :(得分:1)
查看documentation的sprite class,您需要执行以下操作:
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 langugage,而原始cocos2d使用Python。
Google代码在cocos2d的iPhone版本上有很好的文档,包括sample code。
根据该示例代码,您必须执行以下操作:
float newX = spriteObject.position.x + speed * cos(angle);
float newY = spriteObject.position.y + speed * sin(angle);
spriteObject.position = ccp( newX, newY );