Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 为什么不是';my box2D(flash)对象在重力作用下是否正常移动?_Actionscript 3_Flash_Box2d_Game Physics - Fatal编程技术网

Actionscript 3 为什么不是';my box2D(flash)对象在重力作用下是否正常移动?

Actionscript 3 为什么不是';my box2D(flash)对象在重力作用下是否正常移动?,actionscript-3,flash,box2d,game-physics,Actionscript 3,Flash,Box2d,Game Physics,我正在使用box2d在flash中创建一个世界。我以前做过这件事,我相信这件事很简单,但我无法确定 import Box2D.Common.Math.b2Vec2; import Box2D.Dynamics.b2World; import Box2D.Dynamics.b2BodyDef; import Box2D.Dynamics.b2Body; import Box2D.Collision.Shapes.b2CircleShape; import Box2D.Dynamics.b2Fixt

我正在使用box2d在flash中创建一个世界。我以前做过这件事,我相信这件事很简单,但我无法确定

import Box2D.Common.Math.b2Vec2;
import Box2D.Dynamics.b2World;
import Box2D.Dynamics.b2BodyDef;
import Box2D.Dynamics.b2Body;
import Box2D.Collision.Shapes.b2CircleShape;
import Box2D.Dynamics.b2FixtureDef;
import Box2D.Dynamics.b2Fixture;
import flash.events.TimerEvent;
import flash.utils.Timer;


//variables
var startVelocity:b2Vec2 = new b2Vec2(50, 0);

//world defintion
var gravity:b2Vec2 = new b2Vec2(0,10);
var world:b2World = new b2World(gravity, true);

//object physics object
var objectBodyDef:b2BodyDef = new b2BodyDef();
objectBodyDef.type = b2Body.b2_dynamicBody;
var objectBody:b2Body = world.CreateBody(objectBodyDef);
objectBody.SetLinearVelocity(startVelocity);
//object shape definition. Change to box later
var objectShape:b2CircleShape = new b2CircleShape(5);
var objectFixtureDef:b2FixtureDef = new b2FixtureDef();
objectFixtureDef.shape = objectShape;
var objectFixture:b2Fixture = objectBody.CreateFixture(objectFixtureDef);


//outlines for objects
graphics.lineStyle(3, 0xff0000);

//Create world timing
var stepTimer:Timer = new Timer(0.025 * 1000);
stepTimer.addEventListener(TimerEvent.TIMER, onTick);

stepTimer.start();



function onTick(a_event:TimerEvent):void{
    graphics.moveTo(objectBody.GetPosition().x, objectBody.GetPosition().y);
    world.Step(0.25, 10, 10);
    graphics.lineTo(objectBody.GetPosition().x, objectBody.GetPosition().y);
    trace("objectBody x: " + objectBody.GetPosition().x +" objectBody y: " + objectBody.GetPosition().y);
}
我是从时间线开始做这件事的,所以这个问题与文档类无关

上面的代码在大多数情况下运行良好,但是“对象”并不像人们所期望的那样以抛物线移动。当x大约为12时,它停止向右移动。无论我在起始速度向量的x分量前使用什么值,都会发生这种情况。
我做错了什么?

设置速度时,对象没有质量。Box2D处理对象,因为它们并不像预期的那样,当您设置其速度时,对象没有固定装置,所以它没有质量。@BotMaster您是说我应该移动线objectBody.SetLinearVelocity(startVelocity);低一点?我试过了,但结果是一样的。当你设定物体的速度时,物体没有质量。Box2D处理对象,因为它们并不像预期的那样,当您设置其速度时,对象没有固定装置,所以它没有质量。@BotMaster您是说我应该移动线objectBody.SetLinearVelocity(startVelocity);低一点?我试过了,但结果是一样的。