- Kempingezés és sátrazás
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- Lalikiraly: Mercis kalandok - Huszonnyolcadik rész - Az újrakezdés
- sziku69: Szólánc.
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
- Sapphi: StremHU | Source – Self-hostolható Stremio addon magyar trackerekhez
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- N€T0X|N: Talaria tuning: meg kéne tudni állni!
- Ismerkedés a Zyxel NSA325 v2-vel
Új hozzászólás Aktív témák
-
trisztan94
őstag
válasz
trisztan94
#1083
üzenetére
Szerk: (#1084) hunfatal: Köszönöm, megnézem majd

Még egy dolgot kérdeznék

A collision detection eddig így volt megoldva:
Iterator < Body > iter = raindrops.iterator();
while (iter.hasNext()) {
Body raindrop = iter.next();
if (raindrop.y + 64 < 0) {
dropped++;
iter.remove();
}
if (raindrop.overlaps(bucket)) {
dropSound.play();
catched++;
iter.remove();
}
}Amikor összeér a vödör és a csepp, akkor nagyon szépen eltűnt a csepp és lejátszotta a hangot.
Ez amúgy a libgdx "Simple app" tutorialján alapszik, csak átalakítanám box2d-re (gravitáció, "szél" [x tengelyen gravitáció], box2dlight, stbstb miatt)Tehát beraktam ez helyett a box2d-s collision detection-t. így:
Iterator < Body > iter = raindrops.iterator();
while (iter.hasNext()) {
Body raindrop = iter.next();
world.setContactListener(new ContactListener() {
@Override
public void beginContact(Contact contact) {
Fixture fixtureA = contact.getFixtureA();
Fixture fixtureB = contact.getFixtureB();
if ((String) fixtureA.getBody().getUserData() == "bucket" && (String) fixtureB.getBody().getUserData() == "drop" || (String) fixtureA.getBody().getUserData() == "drop" && (String) fixtureB.getBody().getUserData() == "bucket") {
//csepp és vödör ütközik
dropSound.play();
catched++;
iter.remove();
}
if ((String) fixtureA.getBody().getUserData() == "ground" && (String) fixtureB.getBody().getUserData() == "drop" || (String) fixtureA.getBody().getUserData() == "drop" && (String) fixtureB.getBody().getUserData() == "ground") {
//csepp és föld ütközik
dropped++;
iter.remove();
}
}
@Override
public void endContact(Contact contact) {}
@Override
public void preSolve(Contact contact, Manifold oldManifold) {
// TODO Auto-generated method stub
}
@Override
public void postSolve(Contact contact, ContactImpulse impulse) {
// TODO Auto-generated method stub
}
});
}Viszont az iter.remove()-ra ezt a hibát dobja:
"Cannot refer to a non-final variable iter inside an inner class defined in a different method"
Ráraktam az iterátorra a "final" modifikációt, akkor nem hibázik, de amikor valami ütközik (csepp - talaj, csepp - vödör), akkor nem az tűnik el amelyik ütközött, hanem egy tök random.
Értitek, hogy mit magyarázok?
Tudok készíteni egy videót a dologról, ha kell.Köszönöm szépen előre is a segítséget!

Új hozzászólás Aktív témák
- 3D nyomtatással csökkentené a kijelző gyűrődését az Apple iPhone Foldnál
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Milyen TV-t vegyek?
- Poco X8 Pro Max - nem kell ide sem bank, sem akkubank
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Sony MILC fényképezőgépcsalád
- Budapest és környéke adok-veszek-beszélgetek
- BMW topik
- Bittorrent topik
- Teljes verziós játékok letöltése ingyen
- További aktív témák...
- iPhone 15 Pro Max 512GB 87% Esim-es verzió (3hónap Garancia) Kijelzőn pici folt!
- GAMER PC! i5-11400F / RTX 4060 TI / B560M-K / 16GB DDR4 / SSD 512GB BeszámítOK !
- GYÖNYÖRŰ iPhone 12 mini 64GB Purple -1 ÉV GARANCIA - Kártyafüggetlen, MS3851
- Mobiltelefon szerviz Apple & Android készülékek gyors javítása!
- -1millió Új Lenovo 18 Legion 9 WQUXGA 440Hz U9 275HX 64GB 4TB SSD Nvidia RTX 5090 24GB 175W Garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

Tudok készíteni egy videót a dologról, ha kell.
