Hirdetés

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

  • PandaMonium

    őstag

    válasz trisztan94 #1053 üzenetére

    Mondjuk leellenőrzöd, hogy a touchPos a textúrád koordinátáin belül van-e.
    Így ni:
    Vector3 touchPos = new Vector3();
    touchPos.set(Gdx.input.getX(), Gdx.input.getY()*(-1), 0);
    if(touchPos.x > karika.x && touchPos.x < (karika.x+karika.width) && touchPos.y < karika.y && touchPos.y > (karika.y-karika.height)){
    karika.setPosition(new Vector2(touchPos.x - 106 / 2, touchPos.y + 238*2));
    }

    Amit az if-en belül írtam ott nem vagyok benne biztos, hogy léteznek azok a paraméterek olyan formában ahogy írtam őket, de elég logikus a dolog: A karika.x a karika x koordinátája, a karika.y az y koordinátája a karika.width a karika textúrájának szélessége, a karika.height a karika textúrájának magassága.
    Elsőre bonyolultnak tűnhet ez a sor de rajzold le magadnak otthon a feltételeket egy papírra, (vizuálisan mindent sokkal könnyebb megérteni) és te is rájössz, hogy pofon egyszerű az egész.
    Ja és igen, a feltételben a "touchPos.y < karika.y && touchPos.y > (karika.y-karika.height)" rész csak akkor működik ha felfelé növekvő, lefelé csökkenő koordináta rendszert használsz, máskülönben: "touchPos.y > karika.y && touchPos.y < (karika.y+karika.height)" a nyerő (ugyan az, csak fordítva).
    Elég reggel van még, de ha nem írtam el semmit akkor működnie kell így. :)

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