Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   [Box2D] Не могу скоспилировать демки (http://www.flasher.ru/forum/showthread.php?t=141013)

DenisS1 13.06.2010 16:12

Не могу скоспилировать демки
 
Скачал Box2D 2.1а, пытаюсь откомпилировать демки - выдаёт кучу ошибок такого типа: "A file found in a source-path must have the same package structure ", as the definition's package, 'General'. Я вроде бы всё делал по ReadMe - подключил к проекту исходники Box2D, скопировал все файлы с кодом демо в проект, установил Main.as приложением по умолчанию.

Наверное, нужно было начинать с того, что я никогда до этого не использовал сторонние библиотеки и мне всегда хватало одного package, так что я не умею ими пользоваться. Поясните, пожалуйста, что я делаю неправильно?

Добавлено через 20 часов 9 минут
В общем, написал я что-то вроде Hello, world! в Box2D с учётом изменений в новой версии - но оно не работает. Т.е. ошибок и креша нет, но выводит чистый экран, и координаты объекта не меняются.
Код AS3:

package {
 
        import Box2D.Collision.Shapes.b2CircleShape;
        import Box2D.Collision.Shapes.b2MassData;
        import Box2D.Collision.b2AABB;
        import Box2D.Common.Math.b2Vec2;
        import Box2D.Dynamics.b2Body;
        import Box2D.Dynamics.b2BodyDef;
        import Box2D.Dynamics.b2Fixture;
        import Box2D.Dynamics.b2FixtureDef;
        import Box2D.Dynamics.b2World;
 
        import flash.display.Sprite;
        public class TestBox2D extends Sprite
        {
                public function TestBox2D()
                {
                        var worldb2AABB:b2AABB = new b2AABB();
                        worldb2AABB.lowerBound.Set(-100.0, -100.0);
                        worldb2AABB.upperBound.Set(100.0, 100.0);
                        var gravity:b2Vec2=new b2Vec2(0.0, -10.0);
                        var doSleep:Boolean=true;
                        var world:b2World=new b2World(gravity, doSleep);
 
                        var groundBodyDef:b2BodyDef=new b2BodyDef();
                        groundBodyDef.position.Set(0.0, -10.0);
                        var groundBody:b2Body  = 
                        world.CreateBody(groundBodyDef);                       
                        var fd:b2FixtureDef = new b2FixtureDef();
                        fd.density = 1.0;
                        fd.shape = new b2CircleShape(5.0);
                        var fixture:b2Fixture = groundBody.CreateFixture(fd);
                        var bodyDef:b2BodyDef = new b2BodyDef();
                        bodyDef.position.Set(0.0, 4.0);
                        var body:b2Body = world.CreateBody(bodyDef);
                        var bodyFD:b2FixtureDef=new b2FixtureDef();
                        bodyFD.density=1.0;
                        bodyFD.friction=0.3;
                        bodyFD.shape=new b2CircleShape(1.0);
                        var bodyFixture:b2Fixture = body.CreateFixture(bodyFD);
                        var bodyMD:b2MassData = new b2MassData();
                        bodyMD.mass=0.2;
                        var massCenter:b2Vec2=new b2Vec2();
                        massCenter.x=0; massCenter.y=0;
                        bodyMD.center=massCenter;
                        body.SetMassData(bodyMD);
 
 
                        var timeStep:Number = 1.0 / 60.0;
                        var iterations:Number = 10;
                        for (var i:Number = 0; i < 60; ++i)
                        {
                          world.Step(timeStep, iterations, 20);
                          var position:b2Vec2 = body.GetPosition();
                          var angle:Number = body.GetAngle();
                          trace(position.x +','+ position.y +','+ angle);
                        }
 
                }
      }
}


Vilya21 16.11.2010 22:08

По исходнику видно почему объект не летит потому что просчёт идёт в цикле, т.е. он просчитывает всё в холостую, потому что время не идёт. Но вот у меня проблема - вставил этот исходник, поместил world.Step в прослушиватель ENTER_FRAME, но у меня не создаётся объект... или его не видно.


Часовой пояс GMT +4, время: 20:36.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.