Dziedziczenie klas w 2 plikach

Dziedziczenie klas w 2 plikach
D1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 57
0

Witam
Usiluje napisac gre w SFML. Napisalem sobie 2 klasy: 1 odp za wyswietlanie okna, a druga za poruszanie sie postaci, a w przyszlosci za kolizje. Lecz mam niewielki problem. Jak moge dziedziczyc element Windows klasy sf::RenderWindow z klasy Okno w klasie Gracz, aby moc uzyc funkcji Windows.draw(sprite(sprite to tekstura gracza poruszana przeze mnie)). Pozdrawiam

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0

Mi to wygląda na brak rozróżnienia dziedziczenia a udostępnienie referencji.

D1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 57
0

wiesz moglem to zle nazwac ale z opisu wskazuje na udostepnianie referencji?

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0

Jak chcesz ogólnie to jakiś kurs poczytaj, jak chcesz konkretnie to podaj kod.
Zawsze możesz zgłosić się na forum wróżbitów ...

D1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 57
0

window.h

Kopiuj
#ifndef KLASA_H_
#define KLASA_H_

class Game : public player
{
public:
	void start();
	sf::RenderWindow windows;
	sf::Event event;
	sf::Sprite sprite;
	
	
	
	
	
};

#endif 

window.cpp

Kopiuj
#include <SFML/Graphics.hpp>
#include "window.h"
#include "player.h"


void Game::start()
{
	windows.create(sf::VideoMode(800, 600), "Games");

	while (windows.isOpen())
	{

		while (windows.pollEvent(event))
		{
			switch (event.type)
			{
			case sf::Event::Closed:
				windows.close();
				break;


			}

			
			windows.display();
			windows.clear();
		}
	}
} 

player.h

Kopiuj
#ifndef KLASA_H_
#define KLASA_H_


class player 
	{
public:
	sf::Texture tekstura;
	sf::Sprite sprite;
	void postac();

	


};

#endif 

player.cpp

Kopiuj
 #include <SFML\Graphics.hpp>
#include "window.h"



void player::postac()
{

	tekstura.loadFromFile("image.png");
	

	sprite.setTexture(tekstura);

	if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right))
	{
		sprite.move(5, 0);
	}
	if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down))
	{
		sprite.move(0, 5);
	}
	if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up))
	{
		sprite.move(0, -5);
	}
	if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left))
	{
		sprite.move(-5, 0);
	}
	windows.draw(sprite)
	
	
}

core.cpp

Kopiuj
 #include <SFML\Graphics.hpp>
#include<iostream>
#include <string>
#include <fstream>
#include "window.h"



int main()
{
	Game game;

	game.start();

}
_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0
  1. W żadnym przypadku Game nie może dziedziczyć po player - to tak jakby chcesz zagrać tak no to zaraz plansza zostanie przykręcona do ciebie śrubami (boleśnie i niewygodnie).
  2. Zapoznaj się z pojęciem konstruktor
  3. W konstruktorze do player przekaż obiekt Game
  4. Rozdziel porządnie funkcjonalności.
D1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 57
0

a moglbys troche bardziej mnie poinstruować

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0

Liczysz na streszczenie dokumentacji czy kursu C++?
http://www.cplusplus.com/doc/tutorial/

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.