// 定时器刷新
void GameScene::update(float dt)
{
	if (this->isOver == true)
	{
		this->unscheduleUpdate();
		this->turnToGameOverScene();
		return;
	}

	this->score += dt;

	char str[50];
	sprintf(str, "%.3f", this->score);
	this->lbScore->setString(str);

	for (int i = 0; i < this->enemy.size(); i++) 
	{
		Sprite* e = this->enemy.at(i);
		
		// 大小
		float scale = e->getScale() + dt / 100;
		if (scale >= 1.5f) scale = 1.5f;
		e->setScale(scale);

		// 速度
		double minSpeed = this->score * 10 + 100;
		Vec2 speed = e->getPhysicsBody()->getVelocity();
		float length = sqrt(speed.x*speed.x + speed.y*speed.y);

		if (minSpeed >= LIMIT_SPEED) minSpeed = LIMIT_SPEED;
		if (length < minSpeed)
		{
			float d = minSpeed / length;
			speed *= d;
		}
		if (length > LIMIT_SPEED)
		{
			float d = LIMIT_SPEED / length;
			speed *= d;
		}
		if (fabs(speed.x) <= 10.0) speed.x = (speed.x < 0.0f) ? -100.0f : 100.0f;
		if (fabs(speed.y) <= 10.0) speed.y = (speed.y < 0.0f) ? -100.0f : 100.0f;

		e->getPhysicsBody()->setVelocity(Vect(speed.x, speed.y));

		// 位置
		Vect pos = e->getPosition();
		if (this->isOutScreen(pos) == true)
		{
			pos = pos.getClampPoint(Vec2(50, 50), Vec2(WIN_SIZE.width - 50, WIN_SIZE.height - 50));
		}
		e->setPosition(pos);
	}
}