首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >box2d :使用box2d拍摄左侧

box2d :使用box2d拍摄左侧
EN

Stack Overflow用户
提问于 2012-07-12 22:18:22
回答 2查看 264关注 0票数 0

您好,我需要拍摄我的雪碧图..我使用以下代码

代码语言:javascript
运行
复制
-(void)shooter
{
LHSprite* laserSprite = [lh newPhysicalSpriteWithUniqueName:@"ball_1" ];
b2Body* laserBody = [laserSprite body];
[self addChild:laserSprite z:10]; 
NSAssert(laserSprite!=nil, @"Couldn't find devil1"); 

[laserSprite transformPosition:_hero.position];
b2Vec2 ballvel = laserBody->GetLinearVelocity();
ballvel.x = 16;
laserBody->SetLinearVelocity(ballvel);
}

上面的代码拍摄了右侧的sprite,

但如果我更改了side..even,我需要向左射击。x= 16;改为balvel.x= -16;它仍然朝右射击。side..please帮助

我是新来box2d的,所以请温文点:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-12 22:41:07

语法如下:

//1.首先计算移动角度。//2.计算命中功率(强度)

代码语言:javascript
运行
复制
b2Vec2 force;

force.x = cos(angle * M_PI / 180) * power;
force.y = sin(angle * M_PI / 180) * power;

laserBody->ApplyLinearImpulse(force, laserBody->GetPosition()); //or SetLinearVelocity
票数 0
EN

Stack Overflow用户

发布于 2012-07-17 13:02:21

实际上,我的子弹头雪碧图不是issensor...so,它击中了英雄雪碧图,然后又回到了正确的side..my bad ..embarassing :D

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11453872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档