• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Błąd przy kompilacji C++ SFMl

VPS Starter Arubacloud
0 głosów
113 wizyt
pytanie zadane 2 kwietnia 2018 w C i C++ przez TheFeniks Gaduła (4,710 p.)
zamknięte 2 kwietnia 2018 przez TheFeniks

Cześć, przejdźmy do rzeczy mam kod:

main.cpp

#include "stdafx.h"

#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>

#include "Player.h"

int main()
{
	sf::RenderWindow window( sf::VideoMode( 800, 600 ), "My window" );
	Player p1( 400, 300 );


	while( window.isOpen() )
	{
		sf::Event event;
		while( window.pollEvent( event ) )
		{
			if( event.type == sf::Event::Closed )
				window.close();
		}

		window.clear( sf::Color::Black );

		window.draw( p1 );

		window.display();
	}		
	
	return 0;
}

Player.h

#pragma once

#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>

using namespace sf;
using namespace std;


class Player
{
public:
	Player( float t_x, float t_y );

	Player() = delete;
	~Player() = default;

	void update();
	void draw( RenderTarget& target, RenderStates state ) const override;

	float left();
	float right();
	float top();
	float bottom();

private:
	CircleShape shape;
	const float ballRadius { 10.0f };
	const float playerVelocity { 2.f };

	Vector2f velocity { playerVelocity, playerVelocity };
};


Player.cpp

#include "stdafx.h"

#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>

#include "Player.h"

using namespace sf;
using namespace std;


Player::Player( float t_x, float t_y )
{
	shape.setPosition( t_x, t_y );
	shape.setRadius( this->ballRadius );
	shape.setFillColor( Color::White );
	shape.setOrigin( this->ballRadius, this->ballRadius );
}


void Player::draw( RenderTarget & target, RenderStates state ) const
{
	target.draw( this->shape, state );
}


void Player::update()
{
	shape.move( this->velocity );

	if( this->left() < 0 )
	{
		velocity.x = playerVelocity;
	}
	else if( this->right() > 800 )
	{
		velocity.x = -playerVelocity;
	}

	if( this->top() < 0 )
	{
		velocity.y = playerVelocity;
	}
	else if( this->bottom() > 600 )
	{
		velocity.y = -playerVelocity;
	}
}


float Player::left()
{
	return this->shape.getPosition().x - shape.getRadius();
}


float Player::right()
{
	return this->shape.getPosition().x + shape.getRadius();
}


float Player::top()
{
	return this->shape.getPosition().y - shape.getRadius();
}


float Player::bottom()
{
	return this->shape.getPosition().y + shape.getRadius();
}

I otrzymuję takie komunikaty:

https://imgur.com/a/Oy9vt

Nie jestem w stanie sam sobie z tym poradzić, proszę o pomoc i za takową dziękuję z góry. :-) Miłej nocy.

komentarz zamknięcia: rozwiązany

1 odpowiedź

+2 głosów
odpowiedź 2 kwietnia 2018 przez niezalogowany
wybrane 2 kwietnia 2018 przez TheFeniks
 
Najlepsza
class Player :public Drawable

PS. Dodaj też virtual:

virtual void draw(RenderTarget& target, RenderStates state) const override;
1
komentarz 2 kwietnia 2018 przez TheFeniks Gaduła (4,710 p.)
Dziękuje Ci wybawicielu.

Niech bozia wynagrodzi Ci w dzieciach.

Podobne pytania

0 głosów
1 odpowiedź 425 wizyt
pytanie zadane 14 maja 2015 w C i C++ przez Adrian1999 Nałogowiec (34,570 p.)
0 głosów
1 odpowiedź 172 wizyt
pytanie zadane 17 marca 2019 w C i C++ przez Filipotyk Obywatel (1,280 p.)
0 głosów
2 odpowiedzi 476 wizyt
pytanie zadane 16 marca 2019 w C i C++ przez Filipotyk Obywatel (1,280 p.)

92,454 zapytań

141,262 odpowiedzi

319,089 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...