1234567891011121314151617181920212223242526272829303132333435363738 |
- #include <Agents/Agent.hpp>
- #include <Environment/PictureEnvironment.hpp>
-
- PullPaintAgent::PullPaintAgent(PictureEnvironment* iEnvironment, int iDotSize, int iMoveSize) :
- RepaintAgent(iEnvironment, iDotSize, iMoveSize, 0)
- {
- int vWidth = fEnvironment->getWidth();
- int vHeight = fEnvironment->getHeight();
-
- fXPos = (((double)rand() / RAND_MAX) * vWidth);
- fYPos = (((double)rand() / RAND_MAX) * vHeight);
-
- fColor = sf::Color(fEnvironment->getCellOriginal(fXPos, fYPos));
- }
-
- void PullPaintAgent::move()
- {
- int vNewPosX = -1;
- int vNewPosY = -1;
- int vMoveIndex = ((((double)rand() / RAND_MAX) * (fMovements.size() - 1)));
- vNewPosX = fXPos + fMovements.at(vMoveIndex).at(0);
- vNewPosY = fYPos + fMovements.at(vMoveIndex).at(1);
- while (vNewPosX < 0 || vNewPosX > fEnvWidth || vNewPosX < 0 || vNewPosY > fEnvHeight)
- {
- vMoveIndex = ((((double)rand() / RAND_MAX) * (fMovements.size() - 1)));
- vNewPosX = fXPos + fMovements.at(vMoveIndex).at(0);
- vNewPosY = fYPos + fMovements.at(vMoveIndex).at(1);
- }
-
- fXPos = vNewPosX;
- fYPos = vNewPosY;
- }
-
- void PullPaintAgent::loop()
- {
- move();
- this->paint();
- }
|