summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormanzerbredes <loic.guegan_secondary@yahoo.fr>2015-05-03 17:18:10 +0200
committermanzerbredes <loic.guegan_secondary@yahoo.fr>2015-05-03 17:18:10 +0200
commitfb7fb90b85b16ee029b3eb4bc2741214d750807b (patch)
treec809e6f1cdd6f226dedd330123d77e4a5fa6c99b
parent7f0edabb5dff0e88d33cd8855eacda07aa17b1ca (diff)
Add original 2048 skin !
-rw-r--r--src/View/MainWindow.cpp60
-rw-r--r--src/View/MainWindow.hpp1
2 files changed, 55 insertions, 6 deletions
diff --git a/src/View/MainWindow.cpp b/src/View/MainWindow.cpp
index a381bc5..7fe547d 100644
--- a/src/View/MainWindow.cpp
+++ b/src/View/MainWindow.cpp
@@ -13,10 +13,32 @@ MainWindow::MainWindow(int width, int height, std::string title):
m_spaceBetweenCell(10)
{
- //Define skin:
- m_skin.push_back(sf::Color(250,248,239)); //Background MainWindow
- m_skin.push_back(sf::Color(205,192,180)); //Background cells
-
+ //Define original skin:
+ m_skin.push_back(sf::Color(250,248,239)); //Background MainWindow
+ m_skin.push_back(sf::Color(205,192,180)); //Background cells
+ m_skin.push_back(sf::Color(187,173,160)); //Background grid color
+ m_skin.push_back(sf::Color(119,110,101)); //2 and 4 font color
+ m_skin.push_back(sf::Color(249,246,242)); //other number font Color
+
+ //Skin 2 et le 4
+ m_skin.push_back(sf::Color(238,228,218)); //2
+ m_skin.push_back(sf::Color(237,224,200)); //4
+
+ //Skin 8 à 64
+ m_skin.push_back(sf::Color(242,177,121)); //8
+ m_skin.push_back(sf::Color(245,149,99)); //16
+ m_skin.push_back(sf::Color(246,124,95)); //32
+ m_skin.push_back(sf::Color(246,94,59)); //64
+
+ //Skin 128 à 2048
+ m_skin.push_back(sf::Color(237,207,114)); //128
+ m_skin.push_back(sf::Color(237,204,97)); //256
+ m_skin.push_back(sf::Color(237,200,80)); //512
+ m_skin.push_back(sf::Color(237,197,63)); //1024
+ m_skin.push_back(sf::Color(238,194,46)); //2048
+
+ //Skin for other number
+ m_skin.push_back(sf::Color(60,58,50)); //More than 2048
}
@@ -31,16 +53,42 @@ void MainWindow::clearBG(){
void MainWindow::drawCells(){
+ int centerOffset=(800-(3*m_spaceBetweenCell+4*m_sizeCell))/2;
+ int distanceBetweenTopAndGrid=200;
+ int bgsize=3*m_spaceBetweenCell + 4*m_sizeCell + 2*m_spaceBetweenCell;
+ sf::RectangleShape gridBG(sf::Vector2f(bgsize, bgsize));
+ gridBG.setFillColor(m_skin.at(2));
+ gridBG.setPosition(centerOffset-m_spaceBetweenCell,distanceBetweenTopAndGrid - m_spaceBetweenCell);
+ RenderWindow::draw(gridBG);
for(int i=0;i<4;i++){
for(int j=0;j<4;j++){
sf::RectangleShape cell(sf::Vector2f(m_sizeCell, m_sizeCell));
cell.setFillColor(m_skin.at(1));
- int centerOffset=(800-(3*m_spaceBetweenCell+4*m_sizeCell))/2;
- int distanceBetweenTopAndGrid=200;
cell.setPosition(centerOffset+j*(m_sizeCell+m_spaceBetweenCell),distanceBetweenTopAndGrid+i*(m_sizeCell+m_spaceBetweenCell));
RenderWindow::draw(cell);
}
}
}
+
+
+
+sf::Color MainWindow::getCellColor(int value){
+
+ //Id of the first cell color skin
+ int idStart=5;
+
+ if(value%2==0){
+ int result(value);
+ int id(idStart);
+ while(result!=2){
+ result/=2;
+ id++;
+ }
+ return m_skin.at(id);
+ }
+
+
+ return m_skin.at(idStart+11);
+}
diff --git a/src/View/MainWindow.hpp b/src/View/MainWindow.hpp
index 3b13e0c..50527fc 100644
--- a/src/View/MainWindow.hpp
+++ b/src/View/MainWindow.hpp
@@ -20,5 +20,6 @@ class MainWindow : public sf::RenderWindow{
void clearBG();
void drawCells();
+ sf::Color getCellColor(int value);
};