Форум 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=208372)

denis61 05.07.2014 17:29

Графика отстает от тела
 
В общем такая проблема графика отстаёт от тела
Код AS3:

/// инициализация
                public function init():void
                {
                        if (_sprite != null)
                        {
                                //addChild(_sprite)
                                _universe.enemieObject.add(this);
                                _universe._spriteWorld.addChild(this);
                        }
 
                        _isFree = true;
                        addFizModel(new Point(50 / App.METER_PIX, 300 / App.METER_PIX), [new Point(0, 0), new Point(80, 0), new Point(80, 65), new Point(0, 65)]);
                        updaMyLooc();
                }
 
                ///ДОБОВЛЯЕМ ФИЗИЧИСКУЮ МЛДЕЛЬ В ТЕЛО И УСТАНАВЛИВАЕМ СВОЙСТВА ТВЕРДОГО ТЕЛА
                private function addFizModel(location:Point,bodyFram:Array):void
                {
                        var shapeDef:b2PolygonDef = new b2PolygonDef();
                        shapeDef.density = 0.1;
                        shapeDef.vertexCount = bodyFram.length;
 
                        _spriteFiz.graphics.lineStyle(1, 0x000000, 1)
                        _spriteFiz.graphics.beginFill(0x000000, 1)
                        for (var a:Number = 0 ; a < bodyFram.length; a++)
                        {
                                _spriteFiz.graphics.lineTo(bodyFram[a].x, bodyFram[a].y)
                                b2Vec2(shapeDef.vertices[a].Set(bodyFram[a].x / App.METER_PIX, bodyFram[a].y / App.METER_PIX));
                        }
                        _sprite.graphics.lineTo(bodyFram[0].x, bodyFram[0].y);
 
                        if (_sprite != null)
                        {
                                //_spriteFiz.graphics.clear();
                                //addChild(_sprite);
                                addChild(_spriteFiz)
                        }
 
                        bodyDef = new b2BodyDef();
                        bodyDef.position.Set(location.x,location.y);
                        _body = WorldBox2D.world.CreateBody(bodyDef);
                        _body.CreateShape(shapeDef);
                        _body.SetMassFromShapes();
                }
 
                ///ВЫРАВНИВАЕМ ПОЛОЖЕНИЕ ТЕЛО И ФИЗ МОДЕЛЬ
                private function updaMyLooc():void
                {
                        _spriteFiz.x = _body.GetPosition().x * App.METER_PIX;
                        _spriteFiz.y = _body.GetPosition().y * App.METER_PIX;
                        _spriteFiz.rotation= _body.GetAngle() * 180 / Math.PI;
                }
                /// обновление
                public function update(delta:Number):void
                {
                        updaMyLooc();
                }

Через trace все нормально координаты сходятся .при старте флешки тела и графика выравнены а потом когда тело начинает падать и почучуть начинает отставать ,чем больше скорость те быстрей больше отсаёт

RAlfDog 24.07.2014 01:47

Не понимаю, а как вы определяет что она действительно отстаёт? Невижу где у вас выводится отрисоква контейнеров объектов b2d-мира?

caseyryan 24.07.2014 15:24

В этом коде вообще ничего полезного для решения проблемы нет. Ровно как и самой проблемы


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

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