Added card slots
This commit is contained in:
parent
5fb068d5ee
commit
511ac0a347
@ -3,6 +3,13 @@
|
|||||||
|
|
||||||
using namespace olc;
|
using namespace olc;
|
||||||
|
|
||||||
|
|
||||||
|
const vi2d CARD_SIZE = vi2d{32,48};
|
||||||
|
|
||||||
|
PixelGameEngine*game;
|
||||||
|
|
||||||
|
class Example : public olc::PixelGameEngine
|
||||||
|
{
|
||||||
const float PI = 3.14159f;
|
const float PI = 3.14159f;
|
||||||
|
|
||||||
enum Suit {
|
enum Suit {
|
||||||
@ -12,14 +19,34 @@ enum Suit {
|
|||||||
DIAMOND
|
DIAMOND
|
||||||
};
|
};
|
||||||
|
|
||||||
const vi2d CARD_SIZE = vi2d{32,48};
|
enum SlotType {
|
||||||
|
PLAYDECK,
|
||||||
|
ACTIVE_PLAYDECK,
|
||||||
|
HOME,
|
||||||
|
FIELD
|
||||||
|
};
|
||||||
|
|
||||||
|
struct Card {
|
||||||
|
Suit s;
|
||||||
|
int number;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct CardSlot {
|
||||||
|
vf2d pos;
|
||||||
|
SlotType type;
|
||||||
|
std::vector<Card> faceDownCards;
|
||||||
|
std::vector<Card> faceUpCards;
|
||||||
|
void RenderCards() {
|
||||||
|
game->DrawRectDecal(pos, CARD_SIZE, WHITE);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
class Example : public olc::PixelGameEngine
|
|
||||||
{
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
Example()
|
Example()
|
||||||
{
|
{
|
||||||
sAppName = "Solitaire";
|
sAppName = "Solitaire";
|
||||||
|
game = this;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RenderCard(vf2d pos, Suit s, int number) {
|
void RenderCard(vf2d pos, Suit s, int number) {
|
||||||
@ -29,16 +56,38 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
CardSlot PlayDeck{ {16,8},PLAYDECK };
|
||||||
|
CardSlot ActivePlayDeck{ {56,8},ACTIVE_PLAYDECK };
|
||||||
|
std::array<CardSlot, 4> Home;
|
||||||
|
std::array<CardSlot, 7> Field;
|
||||||
bool OnUserCreate() override
|
bool OnUserCreate() override
|
||||||
{
|
{
|
||||||
|
|
||||||
|
for (int i = 0; i < Home.size();i++) {
|
||||||
|
CardSlot&c = Home[i];
|
||||||
|
c.pos = vi2d{ 136 + i * 40,8 };
|
||||||
|
c.type = SlotType::HOME;
|
||||||
|
}
|
||||||
|
for (int i = 0; i < Field.size(); i++) {
|
||||||
|
CardSlot&c = Field[i];
|
||||||
|
c.pos = vi2d{ 16 + i * 40,64 };
|
||||||
|
c.type = SlotType::FIELD;
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool OnUserUpdate(float fElapsedTime) override
|
bool OnUserUpdate(float fElapsedTime) override
|
||||||
{
|
{
|
||||||
// called once per frame
|
// called once per frame
|
||||||
RenderCard({ 48,48 }, HEART, 7);
|
//RenderCard({ 48,48 }, HEART, 7);
|
||||||
|
PlayDeck.RenderCards();
|
||||||
|
ActivePlayDeck.RenderCards();
|
||||||
|
for (CardSlot& c : Home) {
|
||||||
|
c.RenderCards();
|
||||||
|
}
|
||||||
|
for (CardSlot& c : Field) {
|
||||||
|
c.RenderCards();
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user