Page Menu
Home
Phabricator (Chris)
Search
Configure Global Search
Log In
Files
F134081
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Authored By
Unknown
Size
7 KB
Referenced Files
None
Subscribers
None
View Options
diff --git a/assets/shaders/dark.frag b/assets/shaders/dark.frag
index 08c47ca..d8a58a0 100644
--- a/assets/shaders/dark.frag
+++ b/assets/shaders/dark.frag
@@ -1,10 +1,10 @@
uniform sampler2D source;
void main()
{
vec4 src = texture2D(source, gl_TexCoord[0].xy);
// https://en.wikipedia.org/wiki/Relative_luminance
float luminance = src.r * 0.2126 + src.g * 0.7152 + src.b * 0.0722;
- src *= clamp(luminance - 0.5, 0.0, 1.0) * 2;
+ src *= clamp(luminance - 0.5, 0.0, 1.0) * 2.0;
gl_FragColor = src;
}
diff --git a/card.h b/card.h
index adbf0e2..89d177b 100644
--- a/card.h
+++ b/card.h
@@ -1,16 +1,16 @@
#ifndef CARD_H
#define CARD_H
#include <string>
class Card
{
public:
Card();
int id;
- int elementNumber;
+ int elementNumber; //location
int amount;
std::string cardType;
int cardTypeInt;
};
#endif // CARD_H
diff --git a/cardsdeck.cpp b/cardsdeck.cpp
index a7e9242..3b4a753 100644
--- a/cardsdeck.cpp
+++ b/cardsdeck.cpp
@@ -1,134 +1,136 @@
#include "cardsdeck.h"
CardsDeck::CardsDeck(TextureHolder *textures, sf::Font *gameFont)
{
std::array<std::array<int,2>,4> cardsPos = {
{
{1087,95}, {1225, 95}, {1225, 277}, {1087, 277}
}
};
this->textures = textures;
for (int i=0;i<=3;i++)
{
// spriteCardBases[i].setTexture(this->textures->textureCardBases[i]);
spriteCardBases[i].setPosition(cardsPos[i][0],cardsPos[i][1]);
textPileTitle[i].setFont(*gameFont);
textPileTitle[i].setCharacterSize(10);
textPileTitle[i].setPosition(cardsPos[i][0]+10,cardsPos[i][1]+100);
- for (int j=0;j<3;j++)
+ for (int j=0;j<efc::cardsDistribution.size();j++)
{
- std::cout << j << std::endl;
- cardsList[i].cardsPile[j].cardType = efc::cardsTypes[j];
- cardsList[i].cardsPile[j].cardTypeInt = j;
- spriteCardBases[i].setTexture(this->textures->cardsTextures[i][j]);
+ int cardTypeInt = efc::cardsDistribution[j];
+ std::cout << cardTypeInt << std::endl;
+
+ cardsList[i].cardsPile[j].cardType = efc::cardsTypes[cardTypeInt];
+ cardsList[i].cardsPile[j].cardTypeInt = cardTypeInt;
+ spriteCardBases[i].setTexture(this->textures->cardsTextures[i][cardTypeInt]);
}
cardsList[i].shufflePile();
nextCard(i);
// setTitles();
}
}
void CardsDeck::draw(sf::RenderTarget& target, sf::RenderStates states) const
{
states.transform *= getTransform();
for (int i=0;i<=3;i++)
{
if (cardsList[i].invisibleLeft==0.0f)
{
target.draw(spriteCardBases[i], states);
target.draw(textPileTitle[i], states);
}
}
}
void CardsDeck::setTitles(int number)
{
textPileTitle[number].setString(efc::cardsTypes[number]);
int val = cardsList[number].currentCard;
std::cout <<number<< " << hjehe >> " << getTitle(number) << " " << val << std::endl;
spriteCardBases[number].setTexture(textures->cardsTextures[number][val]);
}
void CardsDeck::setSprites(int number)
{
// for (int i=0;i<=3;i++)
// {
// int val = getCardTypeInt(i);
// std::string title = getTitle(i);
// std::cout <<i<< " << hjehe >> " << val << std::endl;
// sf::Texture tmpText = textures->cardsTextures[i][val];
// spriteCardBases[i].setTexture(tmpText);
// }
}
void CardsDeck::setFonts(sf::Font *gameFont)
{
for (int i=0;i<=3;i++)
{
textPileTitle[i].setFont(*gameFont);
}
}
void CardsDeck::nextCard(int pileNumber)
{
cardsList[pileNumber].invisibleLeft = 0.75f;
int currentCard = getCurrentCard(pileNumber);
currentCard += 1;
std::cout << currentCard << " ccard" << std::endl;
if ((currentCard>3) || (currentCard<0))
currentCard = 0;
cardsList[pileNumber].currentCard = currentCard;
setTitles(pileNumber);
// setSprites(pileNumber);
}
int CardsDeck::getCurrentCard(int pileNumber)
{
int currentCard = cardsList[pileNumber].currentCard;
return currentCard;
}
std::string CardsDeck::getTitle(int pileNumber)
{
std::string currentText = efc::cardsTypes[getCardTypeInt(pileNumber)];
return currentText;
}
int CardsDeck::getCardTypeInt(int pileNumber)
{
int result = cardsList[pileNumber].cardsPile[getCurrentCard(pileNumber)].cardTypeInt;
return result;
}
void CardsDeck::update(sf::Time deltaTime)
{
for (int i=0;i<=3;i++)
{
if (cardsList[i].invisibleLeft>0.0f)
{
cardsList[i].invisibleLeft -= deltaTime.asSeconds();
}
if (cardsList[i].invisibleLeft<0.0f)
{
cardsList[i].invisibleLeft = 0.0f;
}
}
}
diff --git a/cardsdeck.h b/cardsdeck.h
index da28c8e..d80a6b8 100644
--- a/cardsdeck.h
+++ b/cardsdeck.h
@@ -1,40 +1,47 @@
#ifndef CARDSDECK_H
#define CARDSDECK_H
#include <array>
#include <SFML/Graphics.hpp>
#include <iostream>
#include "textureholder.h"
#include "cardslist.h"
namespace efc {
-const static std::array<std::string, efc::PILE_SIZE> cardsTypes = {
+const static std::array<std::string, 4> cardsTypes = {
"stop", "card", "diamond", "diamond x 2"
};
+const static std::array<int,32> cardsDistribution = {
+ 0,0,0,0,0,0,0,0,
+ 1,1,1,1,1,1,1,1,
+ 2,2,2,2,2,2,2,2,2,2,
+ 3,3,3,3,3,3
+};
+
}
class CardsDeck: public sf::Drawable, public sf::Transformable
{
public:
CardsDeck(TextureHolder *textures, sf::Font *gameFont);
std::array<CardsList, 4> cardsList;
std::array<sf::Sprite, 4> spriteCardBases;
std::array<sf::Text, 4> textPileTitle;
TextureHolder *textures;
void draw(sf::RenderTarget &target, sf::RenderStates states) const;
// void setTitles();
void setSprites(int number);
void setFonts(sf::Font *gameFont);
void nextCard(int pileNumber);
int getCurrentCard(int pileNumber);
std::string getTitle(int pileNumber);
void update(sf::Time deltaTime);
int getCardTypeInt(int pileNumber);
void setTitles(int number);
};
#endif // CARDSDECK_H
diff --git a/cardslist.cpp b/cardslist.cpp
index 2364b0a..a097054 100644
--- a/cardslist.cpp
+++ b/cardslist.cpp
@@ -1,32 +1,32 @@
#include "cardslist.h"
CardsList::CardsList():
currentCard(0),
invisibleLeft(0)
{
}
CardsList::CardsList(int element)
{
- amount = 32;
+ amount = 32; //TODO: ???
this->element = element;
currentCard = 0;
invisibleLeft = 0.0f;
}
void CardsList::shufflePile()
{
std::srand(std::time(0));
unsigned seed = std::chrono::system_clock::now().time_since_epoch().count();
shuffle (cardsPile.begin(), cardsPile.end(), std::default_random_engine(seed));
}
//void CardsList::addCard(Card card)
//{
//}
diff --git a/cardslist.h b/cardslist.h
index d43b6f5..44973a3 100644
--- a/cardslist.h
+++ b/cardslist.h
@@ -1,38 +1,38 @@
#ifndef CARDSLIST_H
#define CARDSLIST_H
#include <vector>
#include <array>
#include <iostream> // std::cout
#include <algorithm> // std::shuffle
#include <random> // std::default_random_engine
#include <chrono> // std::chrono::system_clock
#include "card.h"
namespace efc {
- const static int PILE_SIZE = 4;
+ const static int PILE_SIZE = 32;
}
class CardsList
{
public:
CardsList(); // To create an array of CardsList
CardsList(int element);
int amount;
// std::vector<Card*> sd;
/*!
* \brief element Number of the element
*/
- std::array<Card, 4> cardsPile;
+ std::array<Card, efc::PILE_SIZE> cardsPile;
int currentCard;
int element; /*!< Number of the element */
float invisibleLeft;
void shufflePile();
};
#endif // CARDSLIST_H
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Wed, Jun 17, 9:16 PM (1 w, 5 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
71037
Default Alt Text
(7 KB)
Attached To
Mode
R82 deerportal
Attached
Detach File
Event Timeline