Exemple #1
0
void GameBlock::Move(double delta, GameObjects* Objects){
	if (alive)
	{
		angle += (rand()%20 - 10);
		double Multiplier = 1;
		MoveByAngle(delta, Multiplier);

		int Resoult = NONE;

		Resoult += CollidesWith(Objects->Player);
		if (Resoult % 10 == LEFT)
			x = Objects->Player.x + Objects->Player.w + r;
		if (Resoult % 10 == RIGHT)
			x = Objects->Player.x - r;

		Resoult += OutOfMap();
		Resoult += CollidesWith(Objects->Brick);
		Resoult += CollidesWith(Objects->Block);

		if (Resoult)
		{
			MoveByAngle(delta, -Multiplier);

			if (Resoult % 10 > 0)
				BounceVertical();
			if (Resoult / 10 > 0)
				BounceHorizontal();
		}
	}
}
Exemple #2
0
void GameBullet::Move(double delta, GameObjects* Objects){
	if (alive)
	{
		MoveByAngle(delta, 1.0f);

		CollidesWith(Objects->Brick);
		OutOfMap();
	}
}
Exemple #3
0
void GameBall::Move(double delta, GameObjects* Objects){
	if (alive)
	{
		double Multiplier = 1;
		if (glued)
			Multiplier = 0;
		if (Objects->Player.ActiveBonus[SLOW] > 0)
			Multiplier /= 2;

		MoveByAngle(delta, Multiplier);

		int Resoult = NONE;

		Resoult += CollidesWith(Objects->Player);
		if (Resoult % 10 == LEFT)
			x = Objects->Player.x + Objects->Player.w + r;
		if (Resoult % 10 == RIGHT)
			x = Objects->Player.x - r;
		if (Resoult == CENTER)
			y = Objects->Player.y - r;

		Resoult += OutOfMap();
		Resoult += CollidesWith(Objects->Brick);
		CollidesWith(Objects->Block);

		if (Resoult)
		{
			MoveByAngle(delta, -Multiplier);

			if (Resoult % 10 > 0)
				BounceVertical();
			if (Resoult / 10 > 0)
				BounceHorizontal();
			if (newAngle)
			{
				angle = newAngle;
				newAngle = 0.0f;
			}
		}
	}
}
Exemple #4
0
void GameBonus::Move(double delta, GameObjects* Objects){
	if (alive)
	{
		double Multiplier = 1;
		if (Objects->Player.ActiveBonus[SLOW] > 0)
			Multiplier /= 2;

		MoveByAngle(delta, Multiplier);

		CollidesWith(Objects->Player);
		if (OutOfMap() == DOWN)
			Destroy();
	}
}
void HeadMotion::ScanIteration() {
	double pan;
	double tilt;

	if (m_currentHeadIteration >= 0
			&& m_currentHeadIteration <= m_numberOfRefinementPoints / 4) {
		pan = m_headScanPanRange / ((double) m_numberOfRefinementPoints / 4)
				* m_currentHeadIteration;
		tilt = -m_headScanPanRange / ((double) m_numberOfRefinementPoints / 4)
				* m_currentHeadIteration + m_headScanPanRange;
	} else if (m_currentHeadIteration >= m_numberOfRefinementPoints / 4 + 1
			&& m_currentHeadIteration <= m_numberOfRefinementPoints / 2) {
		pan = -m_headScanPanRange / ((double) m_numberOfRefinementPoints / 4)
				* (m_currentHeadIteration - m_numberOfRefinementPoints / 4)
				+ m_headScanPanRange;
		tilt = m_headScanTiltDownRange
				/ ((double) m_numberOfRefinementPoints / 4)
				* (m_currentHeadIteration - m_numberOfRefinementPoints / 4)
				- m_headScanTiltDownRange;
	} else if (m_currentHeadIteration >= m_numberOfRefinementPoints / 2 + 1
			&& m_currentHeadIteration <= (m_numberOfRefinementPoints * 3) / 4) {
		pan = -m_headScanPanRange / ((double) m_numberOfRefinementPoints / 4)
				* (m_currentHeadIteration - m_numberOfRefinementPoints / 2);
		tilt = m_headScanTiltDownRange
				/ ((double) m_numberOfRefinementPoints / 4)
				* (m_currentHeadIteration - m_numberOfRefinementPoints / 2)
				- m_headScanTiltDownRange;
	} else if (m_currentHeadIteration
			>= (m_numberOfRefinementPoints * 3) / 4 + 1
			&& m_currentHeadIteration <= m_numberOfRefinementPoints - 1) {
		pan =
				m_headScanPanRange / ((double) m_numberOfRefinementPoints / 4)
						* (m_currentHeadIteration
								- (m_numberOfRefinementPoints * 3) / 4)
						- m_headScanPanRange;
		tilt =
				m_headScanPanRange / ((double) m_numberOfRefinementPoints / 4)
						* (m_currentHeadIteration
								- (m_numberOfRefinementPoints * 3) / 4);
	}

//	m_headInstance->MoveByAngle(pan, tilt);
	MoveByAngle(pan, tilt);

//	usleep(MIN_HEAD_RESPONSE_TIME);
}