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

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 26.03.2008, 00:51
ToXICus вне форума Посмотреть профиль Отправить личное сообщение для ToXICus Посетить домашнюю страницу ToXICus Найти все сообщения от ToXICus
  № 1  
Ответить с цитированием
ToXICus
 
Аватар для ToXICus

Регистрация: May 2006
Адрес: налево от Лондона
Сообщений: 447
Отправить сообщение для ToXICus с помощью ICQ
Cool Box2D: не отрабатываеться physBox\physGround

Всем привет. Недавно поставил box2d, но толком мануала не нашел. Набросал что-то, вроде такого:
Код:
import flash.display.Sprite;
import flash.events.Event;
import Box2D.Dynamics.*;
import Box2D.Collision.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.Math.*;
addEventListener(Event.ENTER_FRAME, Update, false, 0, true);
//create world var, dimensions and gravuty
var worldAABB:b2AABB = new b2AABB();
worldAABB.minVertex.Set(-1000.0, -1000.0);
worldAABB.maxVertex.Set(1000.0, 1000.0);
var gravity:b2Vec2 = new b2Vec2(0.0, 300.0);
var doSleep:Boolean = true;
m_world = new b2World(worldAABB, gravity, doSleep);
var bodyDef:b2BodyDef;
var boxDef:b2BoxDef;
var box:b2BoxDef;
bodyDef = new b2BodyDef();
boxDef = new b2BoxDef();
boxDef.extents.Set(1000, 100);
boxDef.friction = 0.3;
bodyDef.AddShape(boxDef);
bodyDef.userData = new PhysGround();
bodyDef.userData.width = boxDef.extents.x * 2;
bodyDef.userData.height = boxDef.extents.y * 2;
bodyDef.position.Set(320, 400);
addChild(bodyDef.userData);
m_world.CreateBody(bodyDef);
//for (var i:int = 1; i < 20; i++){
bodyDef = new b2BodyDef();
// Box
boxDef = new b2BoxDef();
boxDef.extents.Set(15,15);
boxDef.density = 1.0;
boxDef.friction = 0.5;
boxDef.restitution = 0.2;
bodyDef.AddShape(boxDef);
bodyDef.userData = new PhysBox();
bodyDef.userData.width = boxDef.extents.x * 2;
bodyDef.userData.height = boxDef.extents.y * 2;
bodyDef.position.x = 100;
bodyDef.position.y = 50;
m_world.CreateBody(bodyDef);
addChild(bodyDef.userData);
//}
function Update(e:Event):void {
	m_world.Step(1/31, m_iterations);
	for (var cc:b2Body = m_world.m_bodyList; cc; cc = cc.m_next) {
		if (cc.m_userData is Sprite) {
			cc.m_userData.x = cc.m_position.x;
			cc.m_userData.y = cc.m_position.y;
			cc.m_userData.rotation = cc.m_rotation * (180/Math.PI);
		}
	}
}
var m_world:b2World;
var m_iterations:int =10;
После компиляции выдает ошибку:
1180: Call to a possibly undefined method PhysGround.
1180: Call to a possibly undefined method PhysBox.
Хотя сами библиотеки я указывал.
Может, кто знает, в чем проблема?
__________________
Чтоб понять, что ничего не знаешь - учись.

Старый 13.08.2008, 00:26
Surprize вне форума Посмотреть профиль Отправить личное сообщение для Surprize Найти все сообщения от Surprize
  № 2  
Ответить с цитированием
Surprize

Регистрация: Aug 2008
Сообщений: 1
PhysGround.
PhysBox.

Это не методы, а название Мувиклипов... в библиотеке

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

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

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


 


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


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