H SFML είναι μια βιβλιοθήκη γραφικών για προγραμματισμό, η οποία υποστηρίζει πολλές γλώσσες (c++, java, python, c, Ruby, Go και άλλες) και...

Στήνοντας την βιβλιοθήκη γραφικών SFML στο Code::Blocks

H SFML είναι μια βιβλιοθήκη γραφικών για προγραμματισμό, η οποία υποστηρίζει πολλές γλώσσες (c++, java, python, c, Ruby, Go και άλλες) και μπορεί να χρησιμοποιηθεί και στα τρία λειτουργικά. Χρησιμοποιείται για την δημιουργία παιχνιδιών και περιλαμβάνει αρκετές δυνατότητες, όπως χρήση ήχου, χρήση δικτύου και πολλά ακόμη.

 Στον οδηγό αυτό θα δούμε πως θα στήσουμε την τελευταία έκδοση της βιβλιοθήκης (SFML 2.1) στο CodeBlocks για δημιουργία παιχνιδιών με τη γλώσσα C++ στο Fedora. Tο Fedora παρέχει μέσω του κεντρικού repository την SFML 2.0, ακόμα  και στην έκδοση 20 (τελευταία) της διανομής. Εδώ δεν θα χρησιμοποιήσουμε το αποθετήριο αυτό.  

logo



Λήψη

multimedia  Αρχικά κατεβάζουμε την έκδοση 2.1 για GCC από την σελίδα λήψεων της βιβλιοθήκης ανάλογα με την αρχιτεκτονική του συστήματός μας. Οι φάκελλοι που μας ενδιαφέρουν είναι ο include και ο lib. Γενικά (είτε χρησιμοποιήσουμε το codeblocks είτε κάνουμε compile από τη γραμμή εντολών με το g++) χρειάζεται να ξέρουμε το path όπου είναι αποθηκευμένοι αυτοί οι φάκελλοι στον δίσκο μας. Αν και δεν είναι απαραίτητο, συνηθίζεται οι φάκελλοι αυτοί να είναι οι  /usr/local/include και /usr/local/lib. Θεωρητικά αυτοί οι φάκελλοι είναι οι default που θα ψάξει ο compiler. Παρ' όλα αυτά εμείς πρέπει να κάνουμε τις συνδέσεις ακόμα και αν τα βάλουμε εκεί.  

Απαραίτητες Βιβλιοθήκες

  Αν προσπαθήσουμε σε αυτό το σημείο να κάνομε compile θα λάβουμε μήνυμα λάθους για την βιβλιοθήκη libGLEW.so.1.5 η οποία λείπει. Η βιβλιοθήκη αυτή υπάρχει στα αποθετήρια του Fedora, αλλά όχι στην έκδοση 1.5, αλλά στην 2. Συνεπώς η εγκατάσταση από τα αποθετήρια δεν θα λειτουργήσει. Την έκδοση που χρειαζόμαστε θα την βρείτε εδώ για 32bit και εδώ για 64bit. Τέλος πρέπει να προσθέσουμε στο αρχείο /etc/ld.so.conf (αν δεν υπάρχει το δημιουργούμε) το path όπου βρίσκεται η βιβλιοθήκη (/usr/local/lib στην προκειμένη περίπτωση) και να δώσουμε
sudo ldconfig
Πλέον μπορούμε να χρησιμοποιήσουμε τις βιβλιοθήκες της sfml από το g++.  

SFML με G++

  Έστω ότι έχουμε το πρόγραμμα test.cpp το οποίο περιέχει τον παρακάτω κώδικα:
#include <SFML/Graphics.hpp>

int main()
{
    sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!");
    sf::CircleShape shape(100.f);
    shape.setFillColor(sf::Color::Green);

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

        window.clear();
        window.draw(shape);
        window.display();
    }

    return 0;
}
Για με κάνουμε compile το συγκεκριμένο πρόγραμμα χρησιμοποιώντας το g++ από τη γραμμή εντολών , αρκεί να ανοίξουμε ένα τερματικό στον φάκελλο όπου είναι αποθηκευμένο .cpp αρχείο και να δώσουμε:
g++ -c test.cpp -I<sfml-install-path>/include
Όπου sfml-install-path το path που έχουμε βάλει τον φάκελλο include (χωρίς τα < , > ). Έπειτα:
g++ test.o -o sfml-app -L<sfml-install-path>/lib -lsfml-graphics -lsfml-window -lsfml-system
Αν κάνουμε διπλό κλικ στο sfml-app που θα έχει δημιουργηθεί θα δούμε το πρόγραμμα αυτό να τρέχει. Screenshot from 2013-12-01 16:23:04    

SFML στο CodeBlocks

Το Code::Blocks είναι ένας αρκετά γνωστός cross platform IDE, για προγραμματισμό σε C++. Είναι διαθέσιμος από τα αποθετήρια του Fedora. Για να μπορέσουμε να χρησιμοποιήσουμε την βιβλιοθήκη μέσα από αυτό θα πρέπει να κάνουμε τα κατάλληλα links ακόμα και αν έχουμε τοποθετήσει τη βιβλιοθήκη στον  /usr/local. Από το μενού πηγαίνουμε Project > Build Options. Στην καρτέλα Search Directories βάζουμε το path του compiler και του linker όπως φαίνεται στις παρακάτω φωτογραφίες:
Screenshot from 2013-12-01 16:30:06


Screenshot from 2013-12-01 16:30:36


Έπειτα στην καρτέλα Linker Settings κάνουμε Add τα graphics, window & system και όποιο άλλο mode χρειαζόμαστε (πχ sound) με τη σειρά που φαίνονται παρακάτω:


Screenshot from 2013-12-01 16:30:47

Τέλος στη καρτέλα Compiler Settings εισάγουμε το SFML_STATIC στο #defines

Screenshot from 2013-12-01 16:31:03


Και τώρα είμαστε έτοιμοι να δημιουργήσουμε υπέροχα γραφικά παιχνίδια με τη  C++.
Μπορείτε να ξεκινήσετε διαβάζοντας tutorials από το Wiki page της sfml.

0 σχόλια: