Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Интерфейс реализующий addChild? (http://www.flasher.ru/forum/showthread.php?t=166024)

Hamid 29.08.2011 11:33

Интерфейс реализующий addChild?
 
Всем привет! Начал недавно разбирать движок Nape, и понадобилось мне добавить к телу физическому графику. В самом Nape ковырялся долго, но не нашел где можно это сделать(зачем-то автор в Nape все каждый раз меняет, одна демка уже не работает под другой версией:)). Вопрос: какой интерфейс мне надо подключить чтоб была возможность делать addChild? Интерфейса типа IDisplayObject или IDisplayContainer не нашел.

СлаваRa 29.08.2011 12:09

если вы используете последнюю версию Nape используйте
Код AS3:

.graphic


Hamid 29.08.2011 12:22

Версия предпоследняя. В последней автор так все в корне переименовал, что пока не смог разобраться. Сейчас попробую в старой поискать такую вещь.

Hamid 29.08.2011 12:57

В моей версии такого нет, скачал последнюю там есть такое. Но тогда проблема другая теперь, я не могу запустить отображение. Раньше было так:
Код AS3:

addEventListener(Event.ENTER_FRAME, step);                
function step(ev:Event):void
{
        space.step(1/45);
        graphics.clear();
        debug.draw(graphics, space);
}

Но движок новый ругается на это:
Код AS3:

debug.draw(graphics, space);

там всего один параметр должен быть. Пробовал и график оставлять и спейс - не катит. Можете скинуть маленький пример добавление прямоугольника и его отображение?

СлаваRa 29.08.2011 13:59

по-моему как-то так, документации под рукой нет:
Код AS3:

var debug:Debug = new BitmapDebug(640, 480, 0xFFFFFF, true);
this._сontainer.addChild(debug.display);
var space:Space = new Space(new Vec2(0, 0));
var body:Body;
debug.clear();
debug.draw(space);
debug.flush();

по поводу
Код:

.graphic
после присвоения ему графики, его надо добавлять на сцену
Код:

this._сontainer.addChild(body.graphic);

Hamid 30.08.2011 10:33

СлаваRa, спасибо выручил. Только, сперва не мог понять, что ты имел в виду под:
Код AS3:

this._сontainer.addChild(debug.display);

Одну вещь не понял, качество отображения очень низкое. Само качество меняю
Код AS3:

stage.quality = StageQuality.BEST;

а ему без разницы. В старой версии менялось. Может автор качество отображения хитро спрятал в дебаг? И еще одну мелочь заметил, статические объекты не заливаются в этой версии по умолчанию (или я туплю :)).

mayakwd 30.08.2011 11:21

судя по всему вы добавляете bitmap-изображение в качестве отображения, поставьте:

Код AS3:

bitmap.smoothing = true


Hamid 30.08.2011 13:01

Неа, там нет битмапов, все векторное. Единственная идея, что вот эта переменная
Код AS3:

var debug:Debug = new BitmapDebug(640, 480, 0xFFFFFF, true);

имеет свойство качество отображения, но найти пока ее не смог.

СлаваRa 30.08.2011 13:15

А зачем вам дебаг режим, если Вы цепляете графику? Я, лично, без него обхожусь в таком случае.

Hamid 30.08.2011 14:31

Цитата:

Сообщение от СлаваRa (Сообщение 1026815)
А зачем вам дебаг режим, если Вы цепляете графику? Я, лично, без него обхожусь в таком случае.

Поясните пожалуйста в чем разница между дебаг режимом и без? И как без дебага делать? Я в нейпе только начал работать и вообще говоря плохо понимаю, почему отображением мира занимается дебаг, ведь все, что создается в нейпе добавляется в спейс(помоему было логично у спейса сделать метод draw), хотя спейс может есть контейнер какой то и ответственный за просчеты, а не за графику. :(


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

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