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

[c++][SFML] Problemy z glownym menu w grze :(

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
–4 głosów
417 wizyt
pytanie zadane 10 lipca 2016 w C i C++ przez mrdropex Początkujący (430 p.)

Witam!

Zwracam sie do was poraz kolejny z moim problem :)

Ciezko jest opisac ten problem, bo po prostu nwm o co chodzi :(

#include <iostream>
#include <SFML\Graphics.hpp>
#include <SFML\Audio.hpp>
using namespace std;
sf::Font font;
int i = 0;
class main_menu
{
public:
	sf::Text start;
	sf::Text wczytaj;
	sf::Text ustawienia;
	sf::Text wyjscie;
	main_menu()
	{
		font.loadFromFile("resources/impact.ttf");
		start.setFont(font);
		wczytaj.setFont(font);
		ustawienia.setFont(font);
		wyjscie.setFont(font);
		start.setColor(sf::Color::White);
		wczytaj.setColor(sf::Color::White);
		ustawienia.setColor(sf::Color::White);
        wyjscie.setColor(sf::Color::White);
		start.setString("Start");
		wczytaj.setString("Wczytaj");
		ustawienia.setString("Ustawienia");
		wyjscie.setString("Wyjscie");
		start.setPosition(70,180);
		wczytaj.setPosition(70, 230);
		ustawienia.setPosition(70, 280);
		wyjscie.setPosition(70, 330);
		start.setColor(sf::Color::Red);
	}
	void draw(sf::RenderWindow&app)
	{
		app.draw(start);
		app.draw(wczytaj);
		app.draw(ustawienia);
		app.draw(wyjscie);
	}
	void checker()
	{
		if (sf::Keyboard::isKeyPressed(sf::Keyboard::W))
		{
			i++;
		}
		else if (sf::Keyboard::isKeyPressed(sf::Keyboard::S))
		{
			i--;
		}
		
			
		
		
	}
	void nr_checker()
	{
		if (i = 1)
		{
			start.setColor(sf::Color::Red);
			wczytaj.setColor(sf::Color::White);
			ustawienia.setColor(sf::Color::White);
			wyjscie.setColor(sf::Color::White);
		}
		else if (i = -1)
		{
			start.setColor(sf::Color::White);
			wczytaj.setColor(sf::Color::Red);
			ustawienia.setColor(sf::Color::White);
			wyjscie.setColor(sf::Color::White);
		}
		else if (i = -2)
		{
			start.setColor(sf::Color::White);
			wczytaj.setColor(sf::Color::White);
			ustawienia.setColor(sf::Color::Red);
			wyjscie.setColor(sf::Color::White);
		
		}
		else if (i = -3)
		{
			start.setColor(sf::Color::White);
			wczytaj.setColor(sf::Color::White);
			ustawienia.setColor(sf::Color::White);
			wyjscie.setColor(sf::Color::Red);
		
		}
		else if (i = 2)
		{
			i = -3;
		}
		else if (i = -4)
		{
			i = 1;
		}
	
	
	
	
	}



	
};
int main()
{
	main_menu menu;
	
	sf::RenderWindow app(sf::VideoMode(1280, 720), "Pixel Survival");
	while (app.isOpen())
	{

		sf::Event event;
		while (app.pollEvent(event))
		{

			if (event.type == sf::Event::Closed)
			{
				app.close();
			}
		
		
		
		}
		app.clear();
		menu.draw(app);
		menu.checker();
		menu.nr_checker();
		app.display();
		
	
	
	}
	return 1;
}

 

2 odpowiedzi

+1 głos
odpowiedź 10 lipca 2016 przez niezalogowany
Ale serio? Każesz nam przestudiować cały kod, żeby ci powiedzieć co jest źle? No bez przesady :/ Dla ciebie to tylko napisanie o co chodzi, nawet jeśli nie wiesz jak to napisać, a to będzie i tak mniej wysiłku, niż zrozumienie całego kodu.

PS: proszę cię, nazwy klas pisz z dużej litery, czyli nie main_menu, tylko raczej MainMenu (też bez podkreślnika). Naucz się dobrych nawyków ;)
+1 głos
odpowiedź 10 lipca 2016 przez dubgron Mądrala (5,620 p.)

Witam. Po pierwsze to powinieneś lepiej konstruować pytanie. gdyż nie wiem o co ci dokładnie chodzi.

 Po przeklejeniu twojego kodu do VS, całość nie chciała się uruchomić. Żeby to naprawić musiałem przerzucić 

sf::Event event;

z głównej pętli, przed nią. To jednak nie rozwiązało problemu, ponieważ po wyłączeniu programu, wyrzucał on błąd. Przejrzałem cały kod i zobaczyłem, że w ifach, sprawdzających wartość i, zamiast operatora porównania ( == ), używasz operator przypisania ( = ). Po poprawieniu tego błędu wszystko normalnie działało.

Jeszcze taka porada. Używaj angielskich nazw zmiennych, nazywaj klasy wielkimi literami, nie rób takich dużych przerw między kodem i nie wrzucaj żadnych zmiennych do przestrzeni globalnej. Pozdrawiam.

komentarz 10 lipca 2016 przez mrdropex Początkujący (430 p.)
sprawdze i dam ci znac czy wszystko dziala :)

Podobne pytania

0 głosów
2 odpowiedzi 317 wizyt
pytanie zadane 8 lipca 2016 w C i C++ przez mrdropex Początkujący (430 p.)
0 głosów
1 odpowiedź 617 wizyt
pytanie zadane 20 grudnia 2016 w C i C++ przez xjakubekx Obywatel (1,280 p.)
+1 głos
1 odpowiedź 939 wizyt
pytanie zadane 18 stycznia 2016 w C i C++ przez pietrzakacper Mądrala (7,480 p.)

93,440 zapytań

142,431 odpowiedzi

322,679 komentarzy

62,802 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

...