cocos2d-x中setPosition()异常
cocos2dx吧
全部回复
仅看楼主
level 1
萧炎xy123 楼主
projectile->setPosition(player->getPosition());我一个项目中使用没有异常,代码也没有报错
我在切换一个场景后,使用这个代码,代码没有报错,但是在调试的时候,projectile->setPosition无法读取位置;
bool HelloWorld::onTouchBegan(Touch *touch, Event *unused_event)
{
//获取了场景坐标系中触摸的坐标,然后计算了这个点相对于玩家当前位置的偏移量。
Vec2 vec = touch->getLocation();
Vec2 offset = vec - player->getPosition();
// 玩家不能向后射击
if (offset.x < 0) {
return true;
}
// 在玩家所在的位置创建一个飞镖,将其添加到场景中。
auto projectile = Sprite::create("bo.png");
projectile->setPosition(player->getPosition());
this->addChild(projectile);
projectile->setTag(2);
_projectiles->addObject(projectile);
// 调用normalize()来将偏移量转化为单位向量,即长度为1的向量。将其乘以1000,就获得了一个指向用户触屏方向的长度为1000的向量
offset.normalize();
auto shootAmount = offset * 1000;
// 将此向量添加到飞镖的位置上
auto realDest = shootAmount + projectile->getPosition();
// 创建一个动作,将飞镖在2秒内移动到目标位置,然后将它从场景中移除。
auto actionMove = MoveTo::create(2.0f, realDest);
auto actionRemove = RemoveSelf::create();
projectile->runAction(Sequence::create(actionMove, actionRemove, nullptr));
return true;
}
2018年12月12日 15点12分 1
level 1
萧炎xy123 楼主
这个代码是我在网上找的,做出来没得问题,但是我自己加了个场景,切换后就是使用网上找的代码,代码没有报错,就是在攻击时,这行代码中projectile->setPosition无法读取player->getPosition()返回的参数
2018年12月12日 15点12分 2
level 1
萧炎xy123 楼主
如果不切换场景,就直接用的话,projectile->setPosition一点问题都没有,它能正常读取projectile->setPosition返回的参数。
请各位大佬赐教
2018年12月12日 15点12分 3
level 1
萧炎xy123 楼主
2018年12月12日 15点12分 4
level 1
巧了,我也遇见了这个问题
2018年12月12日 15点12分 5
level 1
有没有大佬解决呀[泪]
2018年12月12日 16点12分 6
1