Closed brier123 closed 10 years ago
Geht noch nicht, hier ist mein Code (in Micropolis.java):
void killZone(int xpos, int ypos, int zoneTile)
{
rateOGMem[ypos/8][xpos/8] -= 20;
assert isZoneCenter(zoneTile);
CityDimension dim = getZoneSizeFor(zoneTile);
assert dim != null;
assert dim.width >= 3;
assert dim.height >= 3;
int zoneBase = (zoneTile&LOMASK) - 1 - dim.width;
//kills zombie hunter, if this tile had a zombie hunter base on it: geht noch nicht
if (isHunterHouse(zoneTile)){
ArrayList<Sprite> hunter_sprites = this.city.getAllSprites(SpriteKind.HUN);
int i = 0;
HunterSprite hunter = (HunterSprite) hunter_sprites.get(i);
while ((!(hunter.getOrigX() == xpos && hunter.getOrigY() == ypos)) && i < hunter_sprites.size()){
hunter = (HunterSprite) hunter_sprites.get(i);
i++;
}
hunter.explodeSprite();
}
ab Zeile 54 in egine.huntersprite public void moveImpl() {
if(this.city.getTile((origX-8)/16, (origY-8)/16) != HUNTER){
this.frame = 0;
return;
}
if (!city.hasPower((origX-8)/16, (origY-8)/16)){
this.frame = 0;
return;
}
... weiter wie gehabt
der zugehörife zombiehunter lässt sich finden, wenn man über "city.getAllSprites(SpriteKind.HUN)" die liste abgreift und dann jeweils die originX & originY variablen mit der tile vergleicht