POSITIVE-MENTAL-ATTITUDE 8 years ago
parent
commit
1256730500
9 changed files with 36 additions and 13 deletions
  1. BIN
      data/background/75pxjitter03.png
  2. 7 0
      src/Foreground.cpp
  3. 2 0
      src/Foreground.hpp
  4. 5 3
      src/IngameState.cpp
  5. 7 2
      src/Player.cpp
  6. 1 0
      src/Player.hpp
  7. 1 1
      src/Triangles.cpp
  8. 9 4
      src/Wormhole.cpp
  9. 4 3
      src/Wormhole.hpp

BIN
data/background/75pxjitter03.png


+ 7 - 0
src/Foreground.cpp

@@ -149,6 +149,8 @@ void Foreground::create(sf::Image& foreground, sf::Image& normal, sf::Image& map
 						_wormholePosition = sf::Vector2u(i, j);
 					else if((int)color.b == 0 && (int)color.g == 250)
 						_starPosition.emplace_back(i, j);
+					else if((int)color.b == 100 && (int)color.g == 100)
+						_playerPosition = sf::Vector2u(i, j);
 				}
 			}
 		}
@@ -224,6 +226,11 @@ void Foreground::draw(sf::RenderTarget& target, sf::RenderStates states) const
 				}
 }
 
+const sf::Vector2f Foreground::getPlayerPosition() const
+{
+	return sf::Vector2f(_playerPosition);
+}
+
 const sf::Vector2f Foreground::getWormholePosition() const
 {
 	return sf::Vector2f(_wormholePosition);

+ 2 - 0
src/Foreground.hpp

@@ -47,6 +47,7 @@ class Foreground: public sf::Drawable
 		void move(sf::Vector2f movement);
 		void rotate(float rotation);
 		const Rect getBounds() const;
+		const sf::Vector2f getPlayerPosition() const;
 		const sf::Vector2f getWormholePosition() const;
 		const bool getStarPosition(sf::Vector2f& starPosition);
 
@@ -62,6 +63,7 @@ class Foreground: public sf::Drawable
 		sf::Vector2u _position;
 		bool _renderNormals;
 		
+		sf::Vector2u _playerPosition;
 		sf::Vector2u _wormholePosition;
 		std::vector<sf::Vector2u> _starPosition;
 };

+ 5 - 3
src/IngameState.cpp

@@ -66,12 +66,14 @@ void IngameState::init()
 		_player.setType(Player::Tropical);
 		_player.setTexture(_context->assets->loadTexture("data/triangle/Tropical.png"));
 	}
-	_player.setContext(_context); 
-	_player.setPosition(556.f, 2200.f);
 	 
 	_foreground.create("data/background/Foreground.jpg", "data/background/Foreground_normal.jpg", "data/background/75pxjitter03.png");
 	_context->foreground = &_foreground;
 	
+	_player.setContext(_context); 
+	_player.setPosition(_foreground.getPlayerPosition() + sf::Vector2f(_player.getTexture()->getSize() / 2u));
+	Echo::error(_player.getOrigin().x, ' ', _player.getOrigin().y);
+	
 	_background.setTextureRect(sf::IntRect(0, 0, _foreground.getSize().x, _foreground.getSize().y));
 	_noshaders.setTextureRect(sf::IntRect(0, 0, _foreground.getSize().x, _foreground.getSize().y));
 	
@@ -94,7 +96,7 @@ void IngameState::init()
 	_dotaSound.setBuffer(_context->assets->loadSound("data/audio/Victory.ogg"));
 	
 	_wormhole.load(_context->assets->loadTexture("data/triangle/Wormhole.png"), _context->assets->loadTexture("data/triangle/Wormhole_light.png"));
-	_wormhole.setPosition(_foreground.getWormholePosition());
+	_wormhole.setPosition(_foreground.getWormholePosition() + _wormhole.getOrigin());
 	
 	sf::Vector2f starPosition;
 	while(_foreground.getStarPosition(starPosition))

+ 7 - 2
src/Player.cpp

@@ -39,9 +39,9 @@ Player::Player():
 	_won(false),
 	//_particleSystem(512, 512),
 	_ammo(4),
+	_type(Type::Tropical),
 	_life(sf::Color::Red, 1.f),
-	_mana(sf::Color::Blue, 0.942f),
-	_type(Type::Tropical)
+	_mana(sf::Color::Blue, 0.942f)
 {
 	/**
 	 *  Default binding
@@ -188,6 +188,11 @@ void Player::setType(Type type)
 	_type = type;
 }
 
+sf::Texture* Player::getTexture()
+{
+	return &_innerTexture;
+}
+
 bool Player::checkCollision(Foreground& foreground, bool pixel)
 {
 	Collidable::updateTransform(getTransform());

+ 1 - 0
src/Player.hpp

@@ -46,6 +46,7 @@ class Player: public Triangle, public InputTarget<int>, public Collidable, publi
 		Player();
 		void update(sf::Time delta);
 		void setTexture(sf::Texture& texture) override;
+		sf::Texture* getTexture();
 		/**
 		 * @brief 
 		 * @param foreground

+ 1 - 1
src/Triangles.cpp

@@ -291,7 +291,7 @@ int Triangles::run()
 	
 	if(_context.running)
 	{
-		Echo::out(Echo::Empty, "Triangles version 0.0.3");
+		Echo::out(Echo::Empty, "Triangles version 0.0.4");
 		Echo::out(Echo::Empty, "Copyright (C) 2016 POSITIVE MENTAL ATTITUDE");
 		Echo::out(Echo::Empty, "This program comes with ABSOLUTELY NO WARRANTY;");
 		Echo::out(Echo::Empty, "This is free software, and you are welcome to redistribute it");

+ 9 - 4
src/Wormhole.cpp

@@ -36,15 +36,20 @@ void Wormhole::load(const sf::Texture& texture1, const sf::Texture& texture2)
 }
 
 Wormhole::~Wormhole()
-{
+{ 
 	Echo::debug("Deleting a wormhole.");
 }
 
-sf::Vector2f Wormhole::getPosition()
+const sf::Vector2f Wormhole::getPosition() const
 {
 	return _sprite.getPosition();
 }
 
+const sf::Vector2f Wormhole::getOrigin() const
+{
+	return _sprite.getOrigin();
+}
+
 void Wormhole::update(sf::Time delta)
 {
 	float degree = delta.asSeconds() * 36.f;
@@ -63,7 +68,7 @@ void Wormhole::setPosition(float x, float y)
 	setPosition(sf::Vector2f(x, y));
 }
 
-float Wormhole::gravity(sf::Vector2f position)
+const float Wormhole::gravity(sf::Vector2f position) const
 {
 	sf::Vector2f delta = position - _sprite.getPosition();
 	if(delta.x > -1.f && delta.y > -1.f && delta.x < 1.f && delta.y < 1.f)
@@ -71,7 +76,7 @@ float Wormhole::gravity(sf::Vector2f position)
 	return std::sqrt(delta.x * delta.x + delta.y * delta.y);
 }
 
-sf::Vector2f Wormhole::direction(sf::Vector2f position)
+const sf::Vector2f Wormhole::direction(sf::Vector2f position) const
 {
 	sf::Vector2f f;
 	sf::Vector2f delta = _sprite.getPosition() - position;

+ 4 - 3
src/Wormhole.hpp

@@ -36,9 +36,10 @@ class Wormhole: public sf::Drawable, public Lantern
 		void update(sf::Time delta);
 		void setPosition(sf::Vector2f position);
 		void setPosition(float x, float y);
-		sf::Vector2f getPosition();
-		float gravity(sf::Vector2f position);
-		sf::Vector2f direction(sf::Vector2f position);
+		const sf::Vector2f getPosition() const;
+		const sf::Vector2f getOrigin() const;
+		const float gravity(sf::Vector2f position) const;
+		const sf::Vector2f direction(sf::Vector2f position) const;
 
 	private:
 		virtual void draw(sf::RenderTarget& target, sf::RenderStates states) const;