示例#1
0
void Collision(sf::RenderWindow &Window, sf::Sound &collision, sf::Shape player, sf::Shape &object)
{
    if(player.GetPosition().x + PLAYERWIDTH < object.GetPosition().x ||
       player.GetPosition().x > object.GetPosition().x + OBJECTWIDTH ||
       player.GetPosition().y + PLAYERHEIGHT < object.GetPosition().y ||
       player.GetPosition().y > object.GetPosition().y + OBJECTHEIGHT)
    {
        // No Collision
    }
    else
    {
        collision.Play();
        object.SetPosition(rand() % (ScreenWidth - OBJECTWIDTH), rand() % (ScreenHeight - OBJECTHEIGHT));
    }
}
示例#2
0
void Kolizja(Swoj &player, Obcy &wrog, sf::Sound &kolizja, int &punkty, int &zycia){

    if((player.pobierzX() < wrog.pobierzX() + SZEROBIEKTU &&
		player.pobierzX() > wrog.pobierzX() &&
		player.pobierzY() + WYSGRACZ/2 > wrog.pobierzY() &&
		player.pobierzY() + WYSGRACZ/2 < wrog.pobierzY() + WYSOOBIEKTU)
			||
		(player.pobierzX() + SZERGRACZ > wrog.pobierzX() &&
		player.pobierzX() + SZERGRACZ < wrog.pobierzX() + SZEROBIEKTU &&
		player.pobierzY() + WYSGRACZ/2 > wrog.pobierzY() &&
		player.pobierzY() + WYSGRACZ/2 < wrog.pobierzY() + WYSOOBIEKTU)	
			||
		(player.pobierzX() + SZERGRACZ/2 > wrog.pobierzX() &&
		player.pobierzX() + SZERGRACZ/2 < wrog.pobierzX() + SZEROBIEKTU &&
		player.pobierzY() > wrog.pobierzY() &&
		player.pobierzY() + WYSGRACZ < wrog.pobierzY() + WYSOOBIEKTU))
	{
		kolizja.Play();
		player.x = player.startX;
		player.y = player.startY;
		--zycia;
	} else {
		if(player.pobierzX() + SZERGRACZ/2 > wrog.pobierzX() - 5 &&
			player.pobierzX() + SZERGRACZ/2 < wrog.pobierzX() + SZEROBIEKTU + 5 &&
			player.pobierzY() + WYSGRACZ > wrog.pobierzY()	&&
			player.pobierzY() < wrog.pobierzY() + WYSOOBIEKTU)
		{
			player.ZmusDoSkoku();
			
			if(typeid(wrog) == typeid (Wrog)){
				++punkty;
			} else if(typeid(wrog) == typeid (Wrog_Lewy)){
				punkty +=5;
			} else 
				punkty +=10;
		}
	}
}