Пример #1
0
        public override void initTest(bool deserialized)
        {
            {
                BodyDef bd = new BodyDef();
                bd.position.set(0.0f, 0.0f);
                Body body = m_world.createBody(bd);

                EdgeShape edge = new EdgeShape();

                edge.set(new Vec2(-10.0f, 0.0f), new Vec2(10.0f, 0.0f));
                body.createFixture(edge, 0.0f);

                PolygonShape shape = new PolygonShape();
                shape.setAsBox(0.2f, 1.0f, new Vec2(0.5f, 1.0f), 0.0f);
                body.createFixture(shape, 0.0f);
            }

            {
                BodyDef bd = new BodyDef();
                bd.type = BodyType.DYNAMIC;
                bd.position.set(0.0f, 4.0f);

                PolygonShape box = new PolygonShape();
                box.setAsBox(2.0f, 0.1f);

                m_body = m_world.createBody(bd);
                m_body.createFixture(box, 1.0f);

                box.setAsBox(0.25f, 0.25f);

                // m_x = RandomFloat(-1.0f, 1.0f);
                m_x = -0.06530577f;
                bd.position.set(m_x, 10.0f);
                bd.bullet = true;

                m_bullet = m_world.createBody(bd);
                m_bullet.createFixture(box, 100.0f);

                m_bullet.setLinearVelocity(new Vec2(0.0f, -50.0f));
            }
        }
Пример #2
0
        public override void keyPressed(char argKeyChar, int argKeyCode)
        {
            switch (argKeyChar)
            {
                case ',':
                    if (m_bullet != null)
                    {
                        getWorld().destroyBody(m_bullet);
                        m_bullet = null;
                    }

                {
                    CircleShape shape = new CircleShape();
                    shape.m_radius = 0.25f;

                    FixtureDef fd = new FixtureDef();
                    fd.shape = shape;
                    fd.density = 20.0f;
                    fd.restitution = 0.05f;

                    BodyDef bd = new BodyDef();
                    bd.type = BodyType.DYNAMIC;
                    bd.bullet = true;
                    bd.position.set(-31.0f, 5.0f);

                    m_bullet = getWorld().createBody(bd);
                    m_bullet.createFixture(fd);

                    m_bullet.setLinearVelocity(new Vec2(400.0f, 0.0f));
                }
                    break;
            }
        }
Пример #3
0
        private void launchBomb(Vec2 position, Vec2 velocity)
        {
            if (bomb != null)
            {
                m_world.destroyBody(bomb);
                bomb = null;
            }
            // todo optimize this
            BodyDef bd = new BodyDef();
            bd.type = BodyType.DYNAMIC;
            bd.position.set(position);
            bd.bullet = true;
            bomb = m_world.createBody(bd);
            bomb.setLinearVelocity(velocity);

            CircleShape circle = new CircleShape();
            circle.m_radius = 0.3f;

            FixtureDef fd = new FixtureDef();
            fd.shape = circle;
            fd.density = 20f;
            fd.restitution = 0;

            Vec2 minV = new Vec2(position);
            Vec2 maxV = new Vec2(position);

            minV.subLocal(new Vec2(.3f, .3f));
            maxV.addLocal(new Vec2(.3f, .3f));

            aabb.lowerBound.set(minV);
            aabb.upperBound.set(maxV);

            bomb.createFixture(fd);
        }
Пример #4
0
        public override void initTest(bool argDeserialized)
        {
            {
                BodyDef bd = new BodyDef();
                bd.position.set(0.0f, 0.0f);
                Body body = getWorld().createBody(bd);

                EdgeShape shape = new EdgeShape();

                shape.set(new Vec2(-10.0f, 0.0f), new Vec2(10.0f, 0.0f));
                body.createFixture(shape, 0.0f);

                PolygonShape pshape = new PolygonShape();
                pshape.setAsBox(0.2f, 1.0f, new Vec2(0.5f, 1.0f), 0.0f);
                body.createFixture(pshape, 0.0f);
            }
            m_poly = new PolygonShape();
            m_poly.setAsBox(2.0f, 0.1f);
            m_circle = new CircleShape();
            m_circle.m_p.setZero();
            m_circle.m_radius = 0.5f;

            BodyDef bd2 = new BodyDef();
            bd2.type = BodyType.DYNAMIC;
            bd2.position.set(0.0f, 20.0f);

            m_body = getWorld().createBody(bd2);
            currFixture = m_body.createFixture(m_poly, 1.0f);

            m_angularVelocity = (float) _random.NextDouble()*100 - 50;
            m_angularVelocity = 33.468121f;
            m_body.setLinearVelocity(new Vec2(0.0f, -100.0f));
            m_body.setAngularVelocity(m_angularVelocity);

            TimeOfImpact.toiCalls = 0;
            TimeOfImpact.toiIters = 0;
            TimeOfImpact.toiMaxIters = 0;
            TimeOfImpact.toiRootIters = 0;
            TimeOfImpact.toiMaxRootIters = 0;
        }