Dependent Classes Example

Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
master
sigonasr2 2 years ago
parent a7540c87d1
commit 882ccac3fb
  1. BIN
      C++ProjectTemplate
  2. 6
      Map.cpp
  3. 10
      Map.h
  4. 6
      Player.cpp
  5. 10
      Player.h
  6. BIN
      dependentClasses.zip
  7. 124
      main.cpp

Binary file not shown.

@ -0,0 +1,6 @@
#include "Map.h"
void Map::test(){
printf("Hello Map\n");
}

10
Map.h

@ -0,0 +1,10 @@
#pragma once
#include <stdio.h>
class Player;
class Map{
public:
Player*p;
void test();
};

@ -0,0 +1,6 @@
#include "Player.h"
void Player::test(){
printf("Hello Player\n");
}

@ -0,0 +1,10 @@
#pragma once
#include <stdio.h>
class Map;
class Player{
public:
Map*map;
void test();
};

Binary file not shown.

@ -1,112 +1,14 @@
#define OLC_PGE_APPLICATION #include "Map.h"
#include "pixelGameEngine.h" #include "Player.h"
class CustomControls : public olc::PixelGameEngine int main() {
{ Map newMap;
public: Player newPlayer;
CustomControls() newMap.p = &newPlayer;
{ newMap.test();
sAppName = "Configuring Custom Controls"; newPlayer.map = &newMap;
} newPlayer.test();
private: newPlayer.map->test();
newMap.p->test();
olc::Key MOVE_UP=olc::W;
olc::Key MOVE_DOWN=olc::S;
olc::Key MOVE_RIGHT=olc::D;
olc::Key MOVE_LEFT=olc::A;
olc::vd2d pos = {0,0};
std::array<std::string,4> keysList = {"UP","RIGHT","DOWN","LEFT"};
int configuringKeyIndex = 0;
public:
bool OnUserCreate() override
{
return true;
}
bool OnUserUpdate(float fElapsedTime) override
{
if (GetKey(olc::F1).bPressed) {
TextEntryEnable(true);
configuringKeyIndex=0;
}
if (TextEntryGetString().size()>0) {
char c = TextEntryGetString()[0];
olc::Key customKey;
if (c>='a'&&c<='z') {
c-=32; //Capitalize the letter.
customKey=(olc::Key)(c-'A'+1);
} else
if (c>='A'&&c<='Z') {
customKey=(olc::Key)(c-'A'+1);
} else
if (c>='0'&&c<='9') {
customKey=(olc::Key)(c-'0'+olc::Key::K0);
} else
{
return true;
}
switch (configuringKeyIndex) {
case 0:{
MOVE_UP=customKey;
}break;
case 1:{
MOVE_RIGHT=customKey;
}break;
case 2:{
MOVE_DOWN=customKey;
}break;
case 3:{
MOVE_LEFT=customKey;
}break;
}
configuringKeyIndex++;
if (configuringKeyIndex<keysList.size()) {
TextEntryEnable(true);
} else {
TextEntryEnable(false);
}
}
if (GetKey(MOVE_UP).bHeld) {
pos+={0,-5*fElapsedTime};
}
if (GetKey(MOVE_DOWN).bHeld) {
pos+={0,5*fElapsedTime};
}
if (GetKey(MOVE_RIGHT).bHeld) {
pos+={5*fElapsedTime,0};
}
if (GetKey(MOVE_LEFT).bHeld) {
pos+={-5*fElapsedTime,0};
}
Clear(olc::VERY_DARK_BLUE);
DrawRect(pos,{32,32},olc::WHITE);
if (IsTextEntryEnabled()) {
DrawString({0,0},"Please press a key for "+keysList[configuringKeyIndex]);
}
return true;
}
};
int main()
{
CustomControls game;
if (game.Construct(256, 240, 4, 4))
game.Start();
return 0;
} }
Loading…
Cancel
Save