#include "Wurm.h" Wurm::Wurm(int x, int y, int laenge) { int i; aRichtung = 'd'; aLaenge = laenge; for (i = aLaenge; i >= 0; i--) dieZelle[i] = new Zelle(x+i, y); } void Wurm::setzeRichtung(char pRichtung) { aRichtung = pRichtung; } char Wurm::gibRichtung( ) { return aRichtung; } void Wurm::zeichneWurm(TImage* zf) { zf->Canvas->Brush->Color=clYellow; zf->Canvas->Rectangle(0, 0, zf->Width, zf->Height); zf->Canvas->Brush->Color=clRed; for(int i=0; i <= aLaenge; i++) dieZelle[i]->zeichneWurm(zf); } void Wurm::krieche(){ int x,xBew,y,yBew; switch(aRichtung){ case 's': xBew = -1; yBew = 0; break; case 'd': xBew = 0; yBew = 1; break; case 'f': xBew = 1; yBew = 0; break; case 'e': xBew = 0; yBew = -1; break; } if(dieZelle[0]->gibX() == 400) xBew = -1; if(dieZelle[0]->gibX() == 0) xBew = 1; if(dieZelle[0]->gibY() == 400) yBew = -1; if(dieZelle[0]->gibY() == 0) yBew = 1; for (int i=aLaenge; i >= 0; i--) if(i!=0) { x = dieZelle[i-1]->gibX(); y = dieZelle[i-1]->gibY(); dieZelle[i]->setzePos(x,y); } else { x = dieZelle[i]->gibX(); y = dieZelle[i]->gibY(); dieZelle[i]->setzePos(x+(dieZelle[i]->gibGroesse()*xBew),y+(dieZelle[i]->gibGroesse()*yBew)); } }