#include "Pixel.h" #include Pixel::Pixel( Vertex pos, Vertex speed, float ep, int id ) : Object2D() { setPosition( pos ); setSpeed( speed ); this->ep = ep; pixelId = id; collision = false; save(); } bool Pixel::tick( const WeltInfo &info, double zeit ) { ep -= (float)zeit; return __super::tick( info, zeit ) || 1; } void Pixel::render( Mat3< float > &kamMat, Bild &zRObj, const char *kamName ) { Mat3< float > mat = kamMat * getObjectMatrix(); Vertex p = mat * Vertex( 0, 0 ); Vertex p2 = mat * Vertex( ep / 5, 0 ); zRObj.fillCircle( (int)p.x, (int)p.y, (int)( p2 - p ).getLength() + 1, 0xFFFFFFFF ); } Rect2< float > Pixel::getBoundingBox() const { Rect2< float > r = Rect2< float >(); r.topLeft.x = -(ep / 5 + 1); r.topLeft.y = -(ep / 5 + 1); r.bottomRight.x = ep / 5 + 1; r.bottomRight.y = ep / 5 + 1; r.topLeft = getWorldPos( r.topLeft ); r.bottomRight = getWorldPos( r.bottomRight ); return r; } float Pixel::getEp() const { return ep; } int Pixel::getId() const { return pixelId; } void Pixel::save() { backup.pos = getPosition(); backup.speed = getSpeed(); backup.rotation = getDrehung(); backup.rSpeed = getDrehungSpeed(); backup.oldEp = ep; } void Pixel::load() { setPosition( backup.pos ); setSpeed( backup.speed ); setDrehung( backup.rotation ); setDrehungSpeed( backup.rSpeed ); ep = backup.oldEp; }