iphone - 射弹/子弹方向 Cocos2d

标签 iphone objective-c ios cocos2d-iphone

我正在学习关于 simple cocos2d game 的教程.

但是在该教程中,用户发射的子弹仅朝一个方向

我该怎么做才能让它向所有方向发射而不是单向发射?

这里是方向的代码。

int offX = location.x - projectile.position.x;
int offY = location.y - projectile.position.y;

[self addChild:projectile];

int realX = winSize.width + (projectile.contentSize.width/2);
float ratio = (float) offY / (float) offX;
int realY = (realX *ratio) + projectile.position.y;
CGPoint realDest = ccp(realX, realY);

int offRealX = realX - projectile.position.x;
int offRealY = realY - projectile.position.y;
float length = sqrtf((offRealX*offRealX)+(offRealY*offRealY));
float velocity = 480/1;
float realMoveDuration = length/velocity;

[projectile runAction:[Sequence actions:[MoveTo actionWithDuration:realMoveDuration position:realDest],
                       [CallFuncN actionWithTarget:self selector:@selector(spriteMoveFinished:)], nil]];

所有帮助将不胜感激。谢谢

最佳答案

假设您在角色所在位置创建射弹,您只需要在计算终点之前弄清楚方向即可。

添加弹丸后:

[self addChild:projectile];

添加标量 float :

float scalarX = 1.0f;

如果触摸是在字符的左侧,则将其设置为负值:

if (offX < 0.0f) scalar = -1.0f;

然后只需将 realX 乘以这个标量,使其指向正确的方向

int realX = scalar * (winSize.width + (projectile.contentSize.width/2));

关于iphone - 射弹/子弹方向 Cocos2d,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8529581/

相关文章:

IOS - Swift - 向 BarButtonItem 的自定义 View 添加目标和操作

ios - UITableViewCell XCTest 中的测试单元格

iphone - 是否有任何 API 可以区分 iPhone?

ios - 在 ios objective c 中通过相机检测物体的速度

iOS 自动布局旋转应用程序崩溃

iphone - 发送 json 对象后应用程序崩溃

ios - 在谷歌地图中显示组标记 - Swift 3.1

iOS XCTest 单元测试 - 设置主类

iphone - 如何停止 UITableView 在顶部和底部的滚动?

iphone - 您可以在 Xcode 中创建每用户项目设置吗?