弹丸/子弹方向 Cocos2d

Posted

技术标签:

【中文标题】弹丸/子弹方向 Cocos2d【英文标题】:Projectiles/Bullets direction Cocos2d 【发布时间】:2011-12-16 03:54:11 【问题描述】:

我正在关注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]];

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

【问题讨论】:

我也在关注Ray的博客学习cocos2d。即使我想知道答案.. :) 【参考方案1】:

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

添加弹丸后:

[self addChild:projectile];

添加一个标量浮点数:

float scalarX = 1.0f;

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

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

然后将realX 乘以这个标量,让它指向正确的方向

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

【讨论】:

我希望我能 +100.. 非常感谢.. :) @davbryn - 非常感谢! 你能回答这个链接吗...我对怪物也有同样的问题:[link]***.com/questions/8797777/…谢谢 我已经快速开始了,但我无法完全掌握你们想要解释的内容。如果我误解了,请告诉我

以上是关于弹丸/子弹方向 Cocos2d的主要内容,如果未能解决你的问题,请参考以下文章

如何移动 3D 弹丸 Unity

我在 SKSpriteNode 中使用碰撞检测时遇到问题

子弹不向方向旋转

如何根据玩家的方向偏移子弹对象

在pygame中向鼠标方向射击子弹

子弹头车轮落后和错误的底盘俯仰方向