folder Tahribat.com Forumları
linefolder C - C++
linefolder C++ Ve SFML Kütüphanesi İle İlgili Birkaç Sorun



C++ Ve SFML Kütüphanesi İle İlgili Birkaç Sorun

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Altair
    Altair's avatar
    Kayıt Tarihi: 31/Aralık/2009
    Erkek

    Hocalar merhabalar, geçen sene başladığım c++ öğrenim işini artık biraz daha ilerlettim devc++ tan visual c++ a geçtim diyebilirim ancak belli başlı problemlerim var. Şimdi eskiden basitçe ekrandan veya dosyadan veri çekme işleri ile uğraşıyordum şimdi olayı bir tık daha ileri götürüp elimdeki herhangi bir gamepad ten komut almak istiyorum ancak bilgim yetersiz kaldı bu konuda. Yaptıklarımı yazayım ilk önce :

    SFML diye bir kütüphane buldum visual studio ya ekledim herşey çok güzel diyebilirim denemesini ıvırını zıvırını yaptım çalışıyor gamepad tanınıyor ama birkaç sıkıntı var.

    yazdığım örnek kod şöyle aslında kütüphanenin örnek koduna birkaç ekleme yaptım diyebilirim.

    #include <SFML/Graphics.hpp>
    #include <SFML/Window.hpp>
    #include <iostream>
    using namespace std;
    int main()
    {
    	cout << "basladi";
    	sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!");
    	sf::CircleShape shape(100.f);
    	shape.setFillColor(sf::Color::Green);
    
    	bool connected = sf::Joystick::isConnected(0);
    	if (connected){
    		
    		cout << "connected";
    	}
    	cout <<endl <<sf::Joystick::getButtonCount(0) << endl;
    	cout << sf::Joystick::hasAxis(0, sf::Joystick::R);
    
    
    	while (window.isOpen())
    	{
    		if (sf::Joystick::isButtonPressed(0, 0)){
    			shape.setFillColor(sf::Color::Magenta);
    		}
    		if (sf::Joystick::isButtonPressed(0, 1)){
    			shape.setFillColor(sf::Color::Blue);
    		}
    		if (sf::Joystick::isButtonPressed(0, 2)){
    			shape.setFillColor(sf::Color::Red);
    		}
    		if (sf::Joystick::isButtonPressed(0, 3)){
    			shape.setFillColor(sf::Color::Transparent);
    		}
    		if (sf::Joystick::isButtonPressed(0, 4)){
    			shape.setFillColor(sf::Color::Cyan);
    		}
    		if (sf::Joystick::isButtonPressed(0, 5)){
    			shape.setFillColor(sf::Color::Yellow);
    		}
    		if (sf::Joystick::isButtonPressed(0, 6)){
    			shape.setFillColor(sf::Color::White);
    		}
    		if (sf::Joystick::isButtonPressed(0, 7)){
    			shape.setFillColor(sf::Color::Black);
    		}
    
    
    
    		if (sf::Mouse::isButtonPressed(sf::Mouse::Left))
    		{
    
    			cout << "left click";
    		}
    		sf::Event event;
    		while (window.pollEvent(event))
    		{
    			if (event.type == sf::Event::Closed)
    				window.close();
    		}
    
    		window.clear();
    		window.draw(shape);
    		window.display();
    	}
    
    	return 0;
    }



    Bu kod hali hazırda çalışıyor ancak sıkıntı şu elimdeki gamepad te 17 tane tuş olmasına rağmen bu kütüpane 12 tanesini algılıyor. Ayrıca gamepad'ten komut alma işlemini form application ile nasıl yapacağım ? Consol'da o küçük pencere açık kalıyor ama formdada öyle mi olacak ?

    Ve bana gamepad kontrolü için smfl den başka tavsiye edebileceğiniz kütüphane var mıdır ?

Toplam Hit: 1720 Toplam Mesaj: 1
c++ smfl