Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 13.06.2010, 16:12
DenisS1 вне форума Посмотреть профиль Отправить личное сообщение для DenisS1 Найти все сообщения от DenisS1
  № 1  
Ответить с цитированием
DenisS1

Регистрация: Oct 2009
Сообщений: 27
По умолчанию Не могу скоспилировать демки

Скачал 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);
	                }
 
	         }
       }
}

Старый 16.11.2010, 22:08
Vilya21 вне форума Посмотреть профиль Отправить личное сообщение для Vilya21 Найти все сообщения от Vilya21
  № 2  
Ответить с цитированием
Vilya21

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

Создать новую тему Ответ Часовой пояс GMT +4, время: 19:46.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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