- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- btz: Internet fejlesztés országosan!
- hcl: Eszelős szívatás : kijelzőtükrözés 2026
- sziku69: Szólánc.
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Elektromos rásegítésű kerékpárok
- GoodSpeed: Te hány éves vagy?
- MasterDeeJay: i7 4980HQ asztali gépben (vs i7 4770)
- Gurulunk, WAZE?!
Ú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
- Tudományos Pandémia Klub
- Spórolós topik
- Forza sorozat (Horizon/Motorsport)
- Érdemes elővenni a Diablo II-t: érdekes újdonságot kap a játék
- Elképzelhetetlen sebességre kapcsolt az Anthropic
- Melyik tápegységet vegyem?
- Százmilliárd dolláros AI-fegyverkezésbe kezdett az Amazon és a Google
- Hosszú premier előzetest kapott az Arknights: Endfield
- Futás, futópályák
- Az elmúlt 30 év legjobb processzorai
- További aktív témák...
- Eladó három darab SSD. 2 x 1 TB illetve 1 x 2 TB
- több db DELL P2419 vékony kávás full HD 1920x1080 IPS monitor HDMI - gari + számla
- iPhone 17 256 GB Párakék - Bontatlan - 1 év gyári Apple garancia, Hivatalos Apple Resellertől!
- iPhone 17 512 GB Párakék - Bontatlan - 1 év gyári Apple garancia, Hivatalos Apple Resellertől!
- Dobozos Új Lenovo ThinkBook 16 G7 Szépséges Laptop 16" -45% Intel Ultra 7 165U 12 Mag 16/512 FHD+
- 233 - Lenovo Legion Pro 7 (16IAX10H) - Intel Core U9 275HX, RTX 5080
- MacBook Pro 16 M1 PRO / 16GB / 1TB ezüst
- Apple iPhone 15 Pro Max / 256GB / Kártyafüggetlen / 12Hó Garancia / Akku: 83%
- LicencAruhaz.hu OLCSÓ, LEGÁLIS SZOFTVEREK AZONNAL - Windows - Office - Win Server - ÖRÖK GARANCIÁVAL
- LG 39GS95UE - 39" Ívelt OLED / QHD 2K / 240Hz & 0.03ms / 1300 Nits / NVIDIA G-Sync / AMD FreeSync
Állásajánlatok
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

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

