当前位置: 首页>>代码示例>>C++>>正文


C++ Music::SetLoop方法代码示例

本文整理汇总了C++中Music::SetLoop方法的典型用法代码示例。如果您正苦于以下问题:C++ Music::SetLoop方法的具体用法?C++ Music::SetLoop怎么用?C++ Music::SetLoop使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Music的用法示例。


在下文中一共展示了Music::SetLoop方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: boucleMaitresse

// gère l'affichage graphique et la gestion évènementielle
void RenduGraphique::boucleMaitresse() {
    if(affichage)
	std::cout << "INI: \tBoucle Maîtresse Lancée" <<std::endl<<std::endl;

    // intialisations
	int inter = 0; // variable intermédiaire entière
	std::string stmp(""); // variable intermédiaire de type string
	bool interbool = false; // variable intermédiaire de type bool
	bool pause = false; // vrai quand le programme est en pause
	bool suivreAstre = false; // vrai quand on suit l'astre sélectionné
	const Input& input = app->GetInput(); // contient les stattus des touches et boutons en temps réel.
    // variables relatives à la sourie
	bool sourisDroit = false, sourisGauche = false; // vrai si appuyé
	bool boiteInfoBougee = false; // vrai quand la BoiteInfoAstre est ferrée
	Vector2f posSourie(0,0); // coorodnnées de la sourie par rapport 
				 //     au dernier endroit cliqué droit
    // Zoom
	double calcZoom; // utilisée pour calculer les zooms
    // Musique
	int statMsq = 1; // mit à faux si la musique n'est pas utilisable
	Music msq;
	if(NAV_ActiverMusique) { // si musique autorisée
	    if(!msq.OpenFromFile(musique)) {
		FATAL_ERROR("INI: Le fichier de musique n'a pas été ouvert", false);
		statMsq = 0; // on ne doit pas agir sur la musique !
	    } else {
		msq.Play();
		msq.SetLoop(true); // on joue la musique en boucle
	    }
	} else
	    statMsq = 0;
    Event event; // évènement

    // boucle évènementielle
    while(app->IsOpened()) {
	// si on est pas en pause, on passe au dt suivant !
	directive = "SOURIS: deplacer ou selectionner, M: Arreter la musique, A: modifier astre selectionne, ESPACE: changer referentiel, ESC: quitter";
	if(!pause) {
	    U->passagedt();
	    // si un astre est suivis (on suit la sélection), avec sécurité
	    if(suivreAstre && selection != NULL) {
		vue->Move(selection->GetVitesse().x,selection->GetVitesse().y);
		// si on suit un astre, on indique bien ce mode !
		etat[ETAT_GENERAL] = 'R';
	    }
	    else 
		etat[ETAT_GENERAL] = 'N';
	}
	// gestion évènementielle
	while(app->GetEvent(event)) {
	    if(event.Type == Event::Closed)
		app->Close();

	    //===================
	    // TOUCHES DU CLAVIER
	    else if(event.Type == Event::KeyPressed) {
		switch(event.Key.Code) {
		    case Key::Escape: // fin du programme (avec confirmation)
			directive = "Quitter ?  Oui: Escape, Non: Autre touche";
			if(confirmationQuitter(suivreAstre)) app->Close();
			break;
		    case Key::Tab: // on saute le nombre indiqué par le tampon, ou la constante utilisateur NAV_PasTab
			inter = str2num(tampon);
			tampon = ""; // on vide le tampon
			// si rien n'est rentré
			if(inter == 0)
			    inter = NAV_PasTab;
			for(int i = 0; i < inter; i++) 
			    U->passagedt();
			if(affichage)
			    std::cout<<inter<<" dt ont été sautés"<<std::endl;
			break;
		    case Key::Return: // on reviens au zoom normal
			// étant donné les problèmes d'imprécision, on préfère une technique admettant une petite incertitude.
			while (fabs(zoomActuel - 1) > 0.09) {
			    if(zoomActuel < 1) {
				zoomActuel *= NAV_CoefficientMolette;
				vue->Zoom(NAV_CoefficientMolette);
			    }
			    else if(zoomActuel > 1) {
				zoomActuel /= NAV_CoefficientMolette;
				vue->Zoom(1/NAV_CoefficientMolette);
			    } 
			} 
			// de plus, on recentre la fenêtre sur l'origine
			vue->SetCenter(0,0);
			break;
		    case Key::Space: // suivre l'astre sélectionné
			suivreAstre = false; 
			// si un astre est sélectionné
			if(selection != NULL)
			    suivreAstre = true; // on suit l'astre sélect.
			break;
		    case Key::Back: // on retire la dernière case du tampon
			if(tampon.size() == 0) break;
			stmp = tampon;
			tampon = "";
			for(unsigned int i = 0; i < stmp.size()-1; i++) {
			    tampon += stmp[i];
//.........这里部分代码省略.........
开发者ID:Matael,项目名称:Gravastre-2.0,代码行数:101,代码来源:RenduGraphique.cpp

示例2: Run

int Game::Run(RenderWindow &win, VideoMode &vMode)
{
	Music m;
	SoundBuffer playerShootBuffer;
	SoundBuffer meteorBuffer;
	meteorBuffer.LoadFromFile("..\\Resources\\meteorexplosion.ogg");
	playerShootBuffer.LoadFromFile("..\\Resources\\playerShoot.ogg");
	Sound playerSound;
	Sound meteorSound;
	meteorSound.SetBuffer(meteorBuffer);
	playerSound.SetBuffer(playerShootBuffer);
	playerSound.SetLoop(false);
	meteorSound.SetLoop(false);
	m.OpenFromFile("..\\Resources\\asteroid.ogg");
	
	m.SetLoop(true);
	m.SetVolume(100);
	PlayerShip ship(player_ship, 2, vMode);
	EnemyShip enemy(enemy_ship, vMode);
	Collision col;
	Event events;
	Image bg1;
	Image bg2;
	Image bg3;
	bg1.LoadFromFile("..\\Resources\\bg.jpg");
	Image stars;
	string abc = "..\\Resources\\star.png";
	stars.LoadFromFile(abc);
	Sprite sp(bg1);
	Sprite sp2(bg1);
	Sprite sp3(bg1);
	Sprite spStar[10];
	Clock clock;
	srand((unsigned)time(0)); 
	for(int i = 0; i<10; i++)
	{
		spStar[i].SetImage(stars);
		//spStar[i].SetPosition
	}
	spStar[0].SetPosition(0,100);
	spStar[1].SetPosition(70,200);
	spStar[2].SetPosition(200,300);
	spStar[3].SetPosition(320,400);
	spStar[4].SetPosition(460,500);
	spStar[5].SetPosition(260,300);
	spStar[6].SetPosition(160,400);
	spStar[7].SetPosition(400,200);
	spStar[8].SetPosition(760,100);
	spStar[9].SetPosition(800,600);
	

	int lowestx, highestx, lowesty, highesty, rangex, rangey, random_integerx, random_integery;
	float time1 = 0;
	float time2 = 0;
	bool start = false;

	



	
	//Sprite spStar1(stars);
	//spStar1.SetPosition(spStar.GetPosition().x, spStar.GetPosition().y - spStar.GetSize().y);
	sp.Resize((float)vMode.Width, (float)vMode.Height);
	sp2.Resize((float)vMode.Width, (float)vMode.Height);
	sp2.SetPosition(sp.GetPosition().x, sp.GetPosition().y - sp.GetSize().y);
	sp3.SetPosition(sp2.GetPosition().x, sp2.GetPosition().y - sp2.GetSize().y);
	//spStar.Resize((float)vMode.Width, (float)vMode.Height);
	bool key = false;
	bool down = false;
	Bullet *bul;
	Meteor* met[METEORCOUNT];
	for(int i = 0; i<METEORCOUNT; i++)
	{
		met[i] = new Meteor(meteor, vMode);
	}
	met[0]->SetPosition(200,-400);
	met[1]->SetPosition(420,-200);
	met[2]->SetPosition(720,-400);
	met[3]->SetPosition(520,-600);
	met[4]->SetPosition(320,-400);
	/*met[5]->SetPosition(620,-400);
	met[6]->SetPosition(100,-400);
*/
	int bulletCount = 0;
	vector<Bullet*> bulletVector;
	vector<Meteor*> meteorVector;
	for(int i = 0; i<METEORCOUNT; i++)
	{
		meteorVector.push_back(met[i]);
	}
	bool fired = false;
	bool pressed = false;
	int count;
	bool change = false;
	//win.UseVerticalSync(true);
	//win.SetFramerateLimit(60);
	int type = pistol;
	Image sunImg;
	sunImg.LoadFromFile("..\\Resources\\Sun.png");
//.........这里部分代码省略.........
开发者ID:rojanneo,项目名称:Asteroid_code,代码行数:101,代码来源:Game.cpp


注:本文中的Music::SetLoop方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。