我正在使用此代码创建并抛出球。我想提高球的速度,它应该保持速度,直到它消失。我该怎么做才能得到结果?
var sphereShape:b2CircleShape=new b2CircleShape(15/worldScale);
var sphereFixture:b2FixtureDef = new b2FixtureDef();
sphereFixture.density=1;
sphereFixture.friction=3;
sphereFixture.restitution=0.1;
sphereFixture.filter.groupIndex = -1;
sphereFixture.shape=sphereShape;
ball_mc=new ballMc();
ballCont_mc.addChild(ball_mc);
var sphereBodyDef:b2BodyDef = new b2BodyDef();
sphereBodyDef.type=b2Body.b2_dynamicBody;
ball_mc.name="throwBall";
ball_mc.hitCount=0;
ball_mc.basketHit=0;
sphereBodyDef.position.Set(arrow_mc.x/worldScale,arrow_mc.y/worldScale);
birdSphere=world.CreateBody(sphereBodyDef);
birdSphere.CreateFixture(sphereFixture);girl_mc.gotoAndStop(3);
birdSphere.SetUserData(ball_mc);
birdSphere.SetBullet(true);
var distanceX:Number=arrow_mc.x-mouseX;
var distanceY:Number=arrow_mc.y-mouseY;
var distance:Number=Math.sqrt(distanceX*distanceX+distanceY*distanceY);
var birdAngle:Number=Math.atan2(distanceY,distanceX);
birdSphere.SetLinearVelocity(new b2Vec2(distance*Math.cos(birdAngle)/4,distance*Math.sin(birdAngle)/4));
任何人都可以帮助我吗?
答案 0 :(得分:3)
给球一个速度变量并使用类似于以下的功能:
function run(Self)
{
Self._x+=Math.sin(Self._rotation*(Math.PI/180))*Self.Speed/10;
Self._y+=Math.cos(Self._rotation*(Math.PI/180))*Self.Speed/10*-1;
}//------------------------------------------------------------^run
调用run(ball_mc);你希望它移动的每一帧。
保持速度变量和速度一样。
自我就是球。你首先需要根据它应该移动的方向来设置它的旋转,但这是一个不同的主题,所以我将保存空间并将其留下。
我希望这会有所帮助。