- Amazfit T-Rex 3 Pro – világítós dínó
- Android alkalmazások - szoftver kibeszélő topik
- Szintet lép a Xiaomi Apple másolásban?
- Samsung Galaxy Buds3 Pro - szárat eresztettek a babok
- Újabb tanúsítványt kapott a Poco X8 Pro Max
- Honor 200 Pro - mobilportré
- OnePlus 15R - régen minden jobb volt
- Xiaomi 15 - kicsi telefon nagy energiával
- Megvan, melyik Snapdragon 7 kerül Nothing Phone (4a)-ba
- Honor Magic6 Pro - kör közepén számok
Ú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
- Genshin Impact (PC, PS4, Android, iOS)
- Amazfit T-Rex 3 Pro – világítós dínó
- Autós topik
- Peugeot, Citroën topik
- Szeged és környéke adok-veszek-beszélgetek
- Android alkalmazások - szoftver kibeszélő topik
- Luck Dragon: Asszociációs játék. :)
- Szintet lép a Xiaomi Apple másolásban?
- Kerékpárosok, bringások ide!
- Samsung Galaxy Buds3 Pro - szárat eresztettek a babok
- További aktív témák...
- Ryzen5 3700x 8core / GTX 1660 Super / SSD 500gb / HHD 2tb
- iPhone 13 mini 128GB silverlight független
- 15.gen! Intel Core ULTRA 9 285K (24mag!) +hűtött VRM-es Z890 lap! GAR/SZÁMLA (Te nevedre kiállítva)!
- Samsung Galaxy S23 Ultra 5G 256Gb Dual, kártya független, fehér színben
- Apple iphone 16 128Gb, kártya független, fehér színben
- BESZÁMÍTÁS! MSI B760M i7 12700 16GB DDR5 512GB SSD RTX 3080 10GB Lian LI LANCOOL 207 GIGABYTE 750W
- Azonnali készpénzes Sony Playstation 4 Slim / PS4 Pro felvásárlás személyesen/csomagküldéssel
- Készpénzes / Utalásos Videokártya és Hardver felvásárlás! Személyesen vagy Postával!
- Vásárlunk iPhone 12/12 Mini/12 Pro/12 Pro Max
- Akció! Gamer PC-Számítógép! Intel Ultra 5 245K / RTX 3080 10GB / 16GB DDR5 / 1TB SSD!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

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


