Hirdetés

Új hozzászólás Aktív témák

  • trisztan94

    őstag

    Sziasztok!

    Box2D-vel kapcsolatban, azon belül collision detection-nel illetve Physics Body Editorral kapcsolatban kérdeznék.

    A helyzet változatlan, van egy karikám, szeretném, ha érzékelné a játék, ha a karika teteje hozzáér a csőhöz.
    PandaMonium ajánlotta erre a Physics Body Editor nevezetű csodás programot.

    Először is ezzel kapcsolatban kérdeznék:

    Rajzoltam két shape-t a collision-re figyelő részeken:

    Ugye itt a teteje és az alja a lényeges. Nézegettem a tool oldalán lévő tutorialt, a sample alkalmazást is, de arra sehogy sem tudok rájönni, hogy hogyan lehetne egy mozgó képre rárakni azt a két shape-t. Mert ugye a karikám touchDrag-re mozog oda ahová húzzuk, de akárhányszor elhúzom ez fogad:

    Persze itt alapból rendesen illeszkedik a képre, csak arrébb húztam, hogy látszódjon. Nem megy a képpel a maszk.. Jelenleg így van definiálva az egész a create() metódusomban:

    BodyEditorLoader karikaLoader = new BodyEditorLoader(Gdx.files.internal("data/collision-masks/karika.json"));
    BodyDef karikaDef = new BodyDef();
    karikaDef.type = BodyType.DynamicBody;
    karikaDef.position.set(karika.getPosition().x, karika.getPosition().y);
    karikaDef.angle = karika.getRotation();

    karikaBody = world.createBody(karikaDef);

    FixtureDef karikaFixture = new FixtureDef();
    karikaFixture.density = 0.5f;
    karikaFixture.friction = 0.8f;
    karikaFixture.restitution = 0.6f;

    karikaLoader.attachFixture(karikaBody, "karika", karikaFixture, karika.getWidth());
    karikaBodyOrigin = karikaLoader.getOrigin("karika", karika.getWidth()).cpy();

    Hogy kéne azt megoldani, hogy a maszk mozogjon vele együtt? Arra már rájöttem, hogy a render() metódusban kéne lennie, de akárhogy próbálgattam helyezgetni a dolgokat (pl: KarikaDef.position-t beraktam a render metódusba mindig a karika draw-olása után), de valamiért sehogy sem működik.

    Viszont ami működik rendesen az a gravitáció. Na de kitaláljátok, hogy mire működik a gravitáció? Hát persze, hogy a DebugRenderer-rel kirajzolt maszkra (amiről eddig szó volt). A karikára hogy tudom rárakni? (Igazából az sem tiszta, hogy most a karika textúrámból hogy tudok egy Body-t csinálni amire aztán ráerősítem a maszkot :F )

    Na, most így hirtelenjében ennyi. A collision detection-ös kérdésemet csak azután teszem fel miután ezt sikerült megoldani (vagy elküldtetek a picsába :P ) :)

    Köszönöm szépen előre is!! :R

Új hozzászólás Aktív témák