void CFireParticleSystem::Initialize(OpenGLES::OpenGLESContext *_gl, GLuint *_textureImageID, Env * _env, int _point_number) { gl = _gl; textureImageID = _textureImageID; env = _env; point_number = _point_number; fire_particles = new CFireParticle[point_number](); particle_x = new int[point_number]; particle_y = new int[point_number]; last_particle_initialized = 0; totalTime = 0.0f; signal = 1; change_cycle = RANDOM_FLOAT * 0.5f; m_fMinDieAge = 1.5f; m_fMaxDieAge = 0.5f; SetCreationDieColor(Vector3D(0.9f,0.8f,0.3f),Vector3D(0.9f,0.9f,0.4f),Vector3D(0.8f,0.724f,0.16f),Vector3D(0.81f,0.725f,0.17f)); SetAlphaValues(1.0f,1.0f,0.0f,0.0f); SetSpinSpeed(-0.82*GLT_PI,0.82*GLT_PI); #define SIZE_ONE 0.5f SetSizeValues(SIZE_ONE,2*SIZE_ONE,SIZE_ONE,2*SIZE_ONE); SetAcceleration(Vector3D(0.0f,-10.0f,0.0f),1.3f,0.4f); m_fMaxEmitSpeed = 40.0f; m_fMinEmitSpeed = 10.0f; SetEmissionDirection(Vector3D(0.0f,0.0f,0.0f),Vector3D(0.0f,0.0f,0.0f)); SetEmitter(Vector3D(0.0f,0.0f,0.0f), Vector3D(0.2f,0.2f,0.0f)); }
void XKeyEmitter::Execute( XSprObj *pSprObj, float fOverSec ) { // spLayer를 인수로 받아쓰면 될거 같은데... auto pLayer = SafeCast<XLayerParticle*>( pSprObj->GetLayer(GetLayerType(), GetnLayer()) ); if( XASSERT( pLayer ) ) { pLayer->SetEmitter( m_Emit ); } }
Allure::Allure(Character* effector, Character* tgt) { SetEffector(effector); this->tgt = tgt; duration = 2.5f; SetEmitter(GameplayState::GetInstance()->CreateEmitter("allure")); }
Burning::Burning(Character* effector) { affectors.emplace(StatType::defense, 0.75f); SetEffector(effector); duration = 6.f; SetEmitter(GameplayState::GetInstance()->CreateEmitter("fire")); }
Transfusion::Transfusion(Character* effector) { SetEffector(effector); duration = 10.0f; //eventual particles SetEmitter(GameplayState::GetInstance()->CreateEmitter("transfusion")); }
Burning::~Burning(void) { SetEffector(nullptr); SetEmitter(nullptr); }