Показать сообщение отдельно
Старый 26.02.2013, 02:19
taluks вне форума Посмотреть профиль Отправить личное сообщение для taluks Найти все сообщения от taluks
  № 6  
Ответить с цитированием
taluks

Регистрация: Jan 2013
Сообщений: 38
взял я и написал по примеру как на с++ тут,
эффекта нет. что я делаю не так?
Код AS3:
package src.objects
{
	import flash.display.MovieClip;
	import Box2D.Dynamics.b2BodyDef;
	import Box2D.Dynamics.b2Body;
	import src.Game;
	import Box2D.Collision.Shapes.b2PolygonShape;
	import Box2D.Common.Math.b2Vec2;
	import flash.events.KeyboardEvent;
	import flash.events.Event;
 
	public class Car extends MovieClip
	{
		private var line:uint;
		private var body:b2Body;
		public function Car()
		{
			this.addEventListener(Event.ADDED_TO_STAGE,init);
		}
		private function init(e:Event):void
		{
			stage.addEventListener(KeyboardEvent.KEY_DOWN,acceleration);
		}
		public function create():void
		{
			var bodyDef:b2BodyDef= new b2BodyDef();
			bodyDef.type = b2Body.b2_dynamicBody;
			bodyDef.position = new b2Vec2(100 / Game.meters,100/ Game.meters);
			bodyDef.fixedRotation = true;
 
			bodyDef.userData = this;
 
			bodyDef.allowSleep=false;
 
			body = Model.model.world.CreateBody(bodyDef);
 
			var polygonShape:b2PolygonShape= new b2PolygonShape();
			polygonShape.SetAsBox(15/Game.meters,30/Game.meters);
 
			body.CreateFixture2(polygonShape,1);
 
		}
		private function acceleration(e:KeyboardEvent):void
		{
			var  desiredVel:Number =0;
			var vel:b2Vec2=body.GetLinearVelocity();
 
			switch(e.keyCode)
			{
				case 37:
				desiredVel=-5;
				break;
				case 38:
				break;
				case 39:
				desiredVel=5;
				break;
				case 40:
				desiredVel=0;
				break;
			}
			var velChange:Number=desiredVel-vel.x;
			var force:Number=body.GetMass() * velChange / (1/stage.frameRate);
			body.ApplyForce(new b2Vec2(force,0),body.GetWorldCenter());
			trace(force);
 
		}
 
	}
 
}
Вложения
Тип файла: swf tst.swf (59.6 Кб, 48 просмотров)