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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.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
Flash Box2D未检测到碰撞?_Flash_Actionscript 3_Box2d_Collision - Fatal编程技术网

Flash Box2D未检测到碰撞?

Flash Box2D未检测到碰撞?,flash,actionscript-3,box2d,collision,Flash,Actionscript 3,Box2d,Collision,编辑:我发现了问题所在,这不再是一个问题。该解决方案是一个愚蠢的错误,我不小心将迭代次数设置为0。对不起 我正在学习Box2D,正在做一个“hello world”式的模拟,但有一个问题 我发现一个板条箱物体掉了下来,它应该撞到地上,然后变平/反弹,然而,板条箱完全忽略了地板主体并继续 我正在使用debugDraw渲染所有内容,并且没有更改源代码。我使用的是2.0.2版 可以找到.swf 我的主要课程如下: // Main.as // // /* / TODO: / / *Collision

编辑:我发现了问题所在,这不再是一个问题。该解决方案是一个愚蠢的错误,我不小心将迭代次数设置为0。对不起

我正在学习Box2D,正在做一个“hello world”式的模拟,但有一个问题

我发现一个板条箱物体掉了下来,它应该撞到地上,然后变平/反弹,然而,板条箱完全忽略了地板主体并继续

我正在使用debugDraw渲染所有内容,并且没有更改源代码。我使用的是2.0.2版

可以找到.swf

我的主要课程如下:

// Main.as
//
//
/*
/ TODO:
/ 
/ *Collision not working
/ 
/ *Correct todo list size
/
/ *Fill empty area of todo list with useless items
/
/ *Stop writing comments at 2AM.
/
*/

package  
{
    import flash.display.*
    import flash.events.*
    import flash.display.MovieClip;
    import Box2D.Collision.*
    import Box2D.Collision.Shapes.*
    import Box2D.Common.*
    import Box2D.Common.Math.*
    import Box2D.Dynamics.*

    public class Main extends MovieClip 
    {
        public static const RATIO:int = 30
        private var world:b2World
        private var crate:b2Body
        private var timeStep:Number = 1/60
        private var iterations:int = 0

        public function Main() 
        {
            createWorld()
            createShapes()
            addCrate()
            startDebug()

            stage.addEventListener(Event.ENTER_FRAME, loop)
        }

        private function startDebug()
        {
            var drawing:Sprite = new Sprite()
            addChild(drawing)

            var drawer:b2DebugDraw = new b2DebugDraw()
            drawer.m_sprite = drawing
            drawer.m_drawScale = RATIO
            drawer.SetFlags(b2DebugDraw.e_shapeBit)
            drawer.m_lineThickness = 2
            drawer.m_fillAlpha = .8

            world.SetDebugDraw(drawer)
        }

        private function loop(e:Event)
        {
            world.Step(timeStep, iterations)

            //tracing

            trace('X: ' + crate.GetPosition().x * RATIO + '; Y: ' + crate.GetPosition().y * RATIO)
        }

        private function addCrate()
        {
            //Add falling block and shit, IDK.
            // Coords should be 230, 15.

            var crateDef:b2BodyDef = new b2BodyDef()
            crateDef.position.Set(230 / RATIO, -40 / RATIO)
            crateDef.angle = 30

            var crateShapeDef:b2PolygonDef = new b2PolygonDef()
            crateShapeDef.SetAsBox(25 / RATIO ,25 / RATIO)
            crateShapeDef.density = .7
            crateShapeDef.friction = .4
            crateShapeDef.restitution = .6

            crate = world.CreateBody(crateDef)
            crate.CreateShape(crateShapeDef)
            crate.SetMassFromShapes()

            trace('Crate added, biatch.')

            stage.addEventListener(Event.ENTER_FRAME, loop)
        }

        private function createWorld()
        {
            var universeAABB:b2AABB = new b2AABB()
            universeAABB.lowerBound.Set(-3000 / RATIO,-3000 / RATIO)
            universeAABB.upperBound.Set(3000 / RATIO,3000 / RATIO)

            var gravity:b2Vec2 = new b2Vec2(0, 15)
            var ignoreSleep:Boolean = true

            world = new b2World(universeAABB, gravity, ignoreSleep)
            trace('World created, ' + world.GetBodyCount() + ' bodies contained within.')
        }

        private function createShapes()
        {
            var floorRectDef:b2PolygonDef = new b2PolygonDef()
            floorRectDef.SetAsBox(275 / RATIO, 5 / RATIO)
            floorRectDef.friction = 0.4
            floorRectDef.restitution = 0.4
            floorRectDef.density = 0


            var floorBodyDef:b2BodyDef = new b2BodyDef()
            floorBodyDef.position.Set(275 / RATIO, 395 / RATIO)

            var floorBody:b2Body = world.CreateBody(floorBodyDef)
            floorBody.CreateShape(floorRectDef)
            floorBody.SetMassFromShapes()

            var wallShapeDef:b2PolygonDef = new b2PolygonDef()
            wallShapeDef.SetAsBox(5 / RATIO, 195 / RATIO)
            wallShapeDef.friction = 0.4
            wallShapeDef.restitution = 0.4
            wallShapeDef.density = 0

            var wallBodyDef:b2BodyDef = new b2BodyDef()
            wallBodyDef.position.Set(5 / RATIO, 195 / RATIO)

            var leftWall:b2Body = world.CreateBody(wallBodyDef)
            leftWall.CreateShape(wallShapeDef)

            wallBodyDef.position.Set(545 / RATIO, 195 / RATIO)

            var rightWall:b2Body = world.CreateBody(wallBodyDef)
            rightWall.CreateShape(wallShapeDef)

            trace('Walls created, simulation now has ' + world.GetBodyCount() + ' bodies.')
        }
    }

}

提前感谢你们的帮助,当我遇到问题时,你们从来没有让我失望过。

迭代次数设置为0,我将其设置为10,它就可以工作了。对我发牢骚