Hoppa till innehållet

Programmera spel i C++ för nybörjare/Enkelt kortspel

Från Wikibooks


Källkod, beskrivning kommer snart

//Kort finns här http://www.jfitz.com/cards/ 
//Enstaka kort är i 8 bit png så de får sparas som bmp istället

#include <iostream>
#include <string>
#include <sstream> //För att kunna konvertera siffror till text
#include <SFML\System.hpp>
#include <SFML\Window.hpp>
#include <SFML\Graphics.hpp>
// #include <SFML\Audio.hpp> bara om du vill ha ljud
using namespace std;    // utifall att konsolen behövs för felsöknning

int main()
{ //programstart

  //Vi måste få svenska tecken att fungera i programmet
 locale swedish("swedish");
 locale::global(swedish);
 sf::RenderWindow App(sf::VideoMode(800, 600, 32), "SFML kortspel"); // Skapa fönstret vi skall ha spelet i

 //Ladda in bilden

 sf::Image spelkort; //Spelkort spritemap
 if (!spelkort.LoadFromFile("classic-playing-cards.png")) //Hämta bildfilen    
     { std::cout << "Kan inte hitta bilden: xclassic-playing-cards.png" << std::endl;}
 //Varje kort är 74x98 pixlar
 
   sf::Image spelkortbak; //Spelkortsbaksida spritemap
 if (!spelkortbak.LoadFromFile("b1fv.bmp")) //Hämta bildfilen    
     { std::cout << "Kan inte hitta bilden: b1fv.bmp" << std::endl;}

 //Skapa baksidan på ett spelkort
  sf::Sprite datorkortlek(spelkortbak); //Skapa sprite för neutral baksida
  datorkortlek.SetPosition(100,300); //Placera ut 


  //Placera ut spelarens kort
  sf::Sprite spelarkort(spelkort); //Skapa sprite för dina drag
  spelarkort.SetPosition(200,200); //Placera ut 
  spelarkort.SetSubRect(sf::IntRect(0,0,74,98));

  //Placera ut bankens kort
   sf::Sprite spelare2kort(spelkort); //Skapa sprite för den andra spelarens drag
   spelare2kort.SetPosition(200,400); //Placera ut 
   spelare2kort.SetSubRect(sf::IntRect(0,0,74,98));

      while (App.IsOpened())  //Starta spel-loopen
     {  //Spel-loopen börjar

       sf::Event Event; 
       while (App.GetEvent(Event)) //Reagera på händelser 
       { //Händelser från tangentbord och mus

	    if (Event.Type == sf::Event::Closed) //kryssat på [x] symbolen? stäng programmet
           App.Close(); 
                                       
           if (Event.Type == sf::Event::KeyPressed) // En tangent har tryckts ner
               { //om det är en tangent som tryckts ner

                if (Event.Key.Code == sf::Key::Escape) // ESC tangenten = stäng programmet
                     App.Close(); 
                if (Event.Key.Code == sf::Key::Return) // Return/enter
                    {//Entertangent
                                               
                    }//Slut på entertangent
	    }//Slut på tangenttryck
			
         } //Slut händelser från tangentbord och mus

		
         //Rensa allt i fönstret och ersätt med blå färg
         App.Clear(sf::Color(0, 0, 255)); 
			  

        //Rita upp korten
        App.Draw(datorkortlek);
	 App.Draw(spelarkort);
        App.Draw(spelare2kort);
        //Visa upp spelet
	 App.Display();

	}//Slut på spel-loop
 return 0;
}//programslut