witam,
jestem totalnym laikiem jesli chodzi o Java,
ale potrzebuje nauczyc sie paru podstaw.
mam problem z Thread.
tworze gre, w ktorej np. niektore elementy beda sie przesuwac - gdy otrzymaja jakis wektor.
rozumiem ze do tego m.in sluzy Thread?
potrzebuje po prostu aby jakas funkcja byla wykonywana np. 10 razy w ciagu sekundy.
w tej funkcji sprawdzam wszystkie mozliwe obiekty, i jesli jakis obiekt ma zadany wektor - to obiekt ten przesuwam.
public void run()
{
int count = 0;
while (timeEventsRunning)
{
ArrayList<MapTileItem> gravityWalls = currGame.getGravityWalls();
if (gravityWalls != null){
for (int b = 0; b < gravityWalls.size(); b++)
{
MapTileItem bomb = (MapTileItem) gravityWalls.get(b);
if (bomb.isFalling()){
boomb.y++;
}
}
}
// Sleep a bit
try
{
Thread.sleep(100);
}
catch(InterruptedException e)
{
// Halt this thread
extension.trace("BattleFarm extension was halted");
}
}
}
powyzszy kod wykonuje sie tylko jeden raz.
ale jesli usune linijke warunek isFalling() i zostawie:
for (int b = 0; b < gravityWalls.size(); b++)
{
MapTileItem bomb = (MapTileItem) gravityWalls.get(b);
boomb.y++;
}
to funkcja ta dziala poprawnie - tzn wykonuje sie wielokrotnie.
czegos nie rozumiem? :)