Beispiel #1
0
	void HexagonGame::updateBeatPulse(float mFT)
	{
		if(status.beatPulseDelay <= 0)
		{
			status.beatPulse = levelStatus.beatPulseMax;
			status.beatPulseDelay = levelStatus.beatPulseDelayMax;
		}
		else status.beatPulseDelay -= 1 * mFT * getMusicDMSyncFactor();

		if(status.beatPulse > 0) status.beatPulse -= 2.f * mFT * getMusicDMSyncFactor();

		float radiusMin{Config::getBeatPulse() ? levelStatus.radiusMin : 75};
		status.radius = radiusMin * (status.pulse / levelStatus.pulseMin) + status.beatPulse;
	}
Beispiel #2
0
void HexagonGame::updatePulse(FT mFT)
{
    if(status.pulseDelay <= 0 && status.pulseDelayHalf <= 0)
    {
        float pulseAdd{status.pulseDirection > 0
                       ? levelStatus.pulseSpeed
                       : -levelStatus.pulseSpeedR};
        float pulseLimit{status.pulseDirection > 0 ? levelStatus.pulseMax
                         : levelStatus.pulseMin};

        status.pulse += pulseAdd * mFT * getMusicDMSyncFactor();
        if((status.pulseDirection > 0 && status.pulse >= pulseLimit) ||
                (status.pulseDirection < 0 && status.pulse <= pulseLimit))
        {
            status.pulse = pulseLimit;
            status.pulseDirection *= -1;
            status.pulseDelayHalf = levelStatus.pulseDelayHalfMax;
            if(status.pulseDirection < 0)
                status.pulseDelay = levelStatus.pulseDelayMax;
        }
    }

    status.pulseDelay -= mFT;
    status.pulseDelayHalf -= mFT;

    float p{status.pulse / levelStatus.pulseMin},
          rotation{backgroundCamera.getRotation()};
    backgroundCamera.setView({ssvs::zeroVec2f,
        {   (Config::getWidth() * Config::getZoomFactor()) * p,
            (Config::getHeight() * Config::getZoomFactor()) * p
        }
    });
    backgroundCamera.setRotation(rotation);
}