#include "DeadPlayer.h" #include "../Define.h" #include #include DeadPlayer::DeadPlayer( Model2DData *mda, Model2DData *mdb, Punkt posa, Punkt posb, Vertex speedA, Vertex speedB, float curRotA, float curRotB, float rotA, float rotB, Textur2D *zTextur ) { m2a = new Model2D(); m2a->setModel( mda ); m2a->setPosition( posa ); m2a->setStyle( Model2D::Style::Sichtbar | Model2D::Style::Textur | Model2D::Style::Alpha ); m2a->setTextur( zTextur->getThis() ); m2a->setDrehung( curRotA ); m2b = new Model2D(); m2b->setModel( mdb ); m2b->setPosition( posb ); m2b->setStyle( Model2D::Style::Sichtbar | Model2D::Style::Textur | Model2D::Style::Alpha ); m2b->setTextur( zTextur->getThis() ); m2b->setDrehung( curRotB ); this->speedA = speedA; this->speedB = speedB; this->rotA = rotA; this->rotB = rotB; alpha = 255; ref = 1; } DeadPlayer::~DeadPlayer() { m2a->release(); m2b->release(); } void DeadPlayer::render( Bild &zRObj ) { zRObj.setAlpha( (unsigned char)alpha ); m2a->render( zRObj ); m2b->render( zRObj ); zRObj.releaseAlpha(); } bool DeadPlayer::tick() { m2a->addDrehung( rotA * (float)TICK ); m2b->addDrehung( rotB * (float)TICK ); m2a->setPosition( m2a->getPosition() + speedA * (float)TICK ); m2b->setPosition( m2b->getPosition() + speedB * (float)TICK ); alpha -= TICK * 15; if( alpha < 0 ) { alpha = 0; return 1; } return 0; } DeadPlayer *DeadPlayer::getThis() { ref++; return this; } DeadPlayer *DeadPlayer::release() { if( !--ref ) delete this; return 0; }