sfml ट्यूटोरियल
Sfml के साथ आरंभ करना
खोज…
टिप्पणियों
SFML मल्टीमीडिया है
एसएफएमएल अपने पीसी के विभिन्न घटकों को एक सरल इंटरफ़ेस प्रदान करता है, जिससे गेम और मल्टीमीडिया एप्लिकेशन का विकास आसान हो सके। यह पांच मॉड्यूल से बना है: सिस्टम, विंडो, ग्राफिक्स, ऑडियो और नेटवर्क।
ट्यूटोरियल और एपीआई प्रलेखन में उनकी विशेषताओं के बारे में अधिक विस्तार से जानें ।
एसएफएमएल मल्टी प्लेटफॉर्म है
एसएफएमएल के साथ, आपका एप्लिकेशन सबसे सामान्य ऑपरेटिंग सिस्टम पर बॉक्स से बाहर संकलन और चला सकता है: विंडोज, लिनक्स, मैक ओएस एक्स और जल्द ही एंड्रॉइड और आईओएस।
आपके पसंदीदा OS के लिए पूर्व-संकलित एसडीके डाउनलोड पृष्ठ पर उपलब्ध हैं।
एसएफएमएल बहु भाषा है
SFML के पास C और .Net भाषाओं के लिए आधिकारिक बाइंडिंग हैं। और इसके सक्रिय समुदाय के लिए धन्यवाद, यह कई अन्य भाषाओं जैसे जावा, रूबी, पायथन, गो और अन्य में भी उपलब्ध है।
बाइंडिंग पृष्ठ पर उनके बारे में अधिक जानें।
संस्करण
संस्करण | रिलीज़ की तारीख |
---|---|
1.0 | 2007-07-01 |
1.1 | 2007-09-18 |
1.2 | 2008-07-16 |
1.3 | 2008-06-22 |
1.4 | 2009-01-07 |
1.5 | 2009-06-04 |
1.6 | 2010-04-06 |
2.0 | 2013-04-29 |
2.1 | 2013-07-27 |
2.2 | 2014-12-17 |
2.3 | 2015/05/09 |
2.3.1 | 2015/07/11 |
2.3.2 | 2015/10/12 |
2.4.0 | 2016/08/10 |
2.4.1 | 2016/11/04 |
2.4.2 | 2017/02/08 |
स्थापना या सेटअप
- सबसे पहले, आधिकारिक पेज से SFML की एक प्रति डाउनलोड करें।
- इसे अपने कंप्यूटर में कहीं भी सेव करें जहां इसे आसानी से एक्सेस किया जा सके।
- कोडब्लॉक खोलें।
- Project-> Build Options-> LinkerSettings टैब पर जाएं।
- ऐड बटन पर क्लिक करें और एसएफएमएल के बिन फ़ोल्डर में जाएं और वहां मौजूद सभी फाइलों का चयन करें।
- अब सर्च डाइरेक्टरी टैब पर जाएं और SFML के 'शामिल' फोल्डर को जोड़ें।
- उसी टैब में, उप-टैब लिंकर सेटिंग्स पर क्लिक करें और 'बिन' फ़ोल्डर जोड़ें।
बेसिक SFML कार्यक्रम
यदि सब कुछ सही ढंग से स्थापित किया गया है, तो निम्नलिखित स्निपेट "एसएफएमएल काम करता है" नामक एक खिड़की दिखाएगा! हरे घेरे के साथ:
#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;
}
स्थापना - लिनक्स
लिनक्स पर SFML की स्थापना के लिए अलग-अलग दृष्टिकोण हैं:
- इसे सीधे अपने वितरण के पैकेज रिपॉजिटरी से इंस्टॉल करें
- स्रोत कोड प्राप्त करें, इसे बनाएं और इसे इंस्टॉल करें
- पहले से तैयार एसडीके डाउनलोड करें और फ़ाइलों को मैन्युअल रूप से कॉपी करें
विकल्प 1 पसंदीदा एक है; यदि SFML का संस्करण जिसे आप इंस्टॉल करना चाहते हैं, आधिकारिक रिपॉजिटरी में उपलब्ध है, तो अपने पैकेज मैनेजर का उपयोग करके इसे इंस्टॉल करें। उदाहरण के लिए, डेबियन पर आप क्या करेंगे:
sudo apt-get install libsfml-dev
विकल्प 2 में अधिक काम करने की आवश्यकता है: आपको यह सुनिश्चित करने की आवश्यकता है कि एसएफएमएल के सभी आश्रितों सहित उनके विकास के हेडर उपलब्ध हैं, सुनिश्चित करें कि सीएमके स्थापित है, और मैन्युअल रूप से कुछ कमांड निष्पादित करें। यह एक पैकेज में परिणाम देगा जो आपके सिस्टम के अनुरूप है। यदि आप इस तरह से जाना चाहते हैं, तो स्वयं एसएफएमएल के निर्माण पर एक समर्पित ट्यूटोरियल है ।
यदि एसएफएमएल आधिकारिक पैकेज के रूप में उपलब्ध नहीं है, तो अंत में, विकल्प 3 त्वरित स्थापना के लिए एक अच्छा विकल्प है। एसडीके को डाउनलोड पृष्ठ से डाउनलोड करें, इसे अनपैक करें और फ़ाइलों को अपने पसंदीदा स्थान पर कॉपी करें: या तो आपके व्यक्तिगत फ़ोल्डर में एक अलग पथ (जैसे / होम / मी / एसएफएमएल), या एक मानक पथ (जैसे / यूएसआर / स्थानीय)।
यदि आपके पास पहले से ही SFML का पुराना संस्करण स्थापित है, तो सुनिश्चित करें कि यह नए संस्करण के साथ संघर्ष नहीं करेगा!
स्थापना - विंडोज
खिड़कियों पर एसएफएमएल स्थापित करने का सबसे आम तरीका आधिकारिक एसडीके डाउनलोड करना है
फिर आप संग्रह को अनपैक कर सकते हैं और इसे अपनी पसंद के वातावरण में उपयोग कर सकते हैं।
vcpkg
हालाँकि यह अभी भी विकास में भारी है, अगर आप विज़ुअल स्टूडियो 2017 या नए का उपयोग करते हैं, तो आप vcpkg के माध्यम से SFML भी स्थापित कर सकते हैं जो दृश्य स्टूडियो के साथ एकीकृत होता है, जो स्थापना प्रक्रिया को बहुत सरल करता है:
vcpkg install sfml
पृथक्करण - macOS
सबसे पहले आपको SFML SDK डाउनलोड करना होगा। फिर, एसएफएमएल अनुप्रयोगों को विकसित करना शुरू करने के लिए, आपको निम्नलिखित मदों को स्थापित करना होगा:
हैडर फाइलें और लाइब्रेरी
SFML या तो dylibs या चौखटे के रूप में उपलब्ध है। केवल एक प्रकार के बाइनरी की आवश्यकता होती है, हालांकि दोनों को एक ही सिस्टम पर एक साथ स्थापित किया जा सकता है। हम रूपरेखा का उपयोग करने की सलाह देते हैं।
फ़्रेमवर्क
- फ़्रेमवर्क / लाइब्रेरी / फ़्रेमवर्क की सामग्री की प्रतिलिपि बनाएँ।
dylib
- / Usr / local / lib के लिए लिब की सामग्री की प्रतिलिपि बनाएँ और / usr / लोकल / शामिल करने की सामग्री की प्रतिलिपि बनाएँ।
एसएफएमएल निर्भरता
एसएफएमएल मैक ओएस एक्स पर कुछ बाहरी पुस्तकालयों पर निर्भर करता है। एक्सेलिब की सामग्री को / लाइब्रेरी / फ्रेमवर्क में कॉपी करें।
Xcode टेम्पलेट
यदि आप Xcode का उपयोग करते हैं, तो टेम्प्लेट स्थापित करना दृढ़ता से अनुशंसित है। SFML निर्देशिका को टेम्प्लेट / लाइब्रेरी / डेवलपर / Xcode / टेम्प्लेट से कॉपी करें (यदि वे अभी तक मौजूद नहीं हैं तो फ़ोल्डर बनाएं)।
एसएफएमएल विंडो में हैलो वर्ल्ड
चलो एक छोटा प्रोग्राम लिखें जो एक विंडो खोलेगा, और स्क्रीन पर "हैलो वर्ल्ड" लिखेगा।
#include <SFML\Graphics.hpp>
#include <cassert>
int main() {
sf::RenderWindow sfmlWin(sf::VideoMode(600, 360), "Hello World SFML Window");
sf::Font font;
//You need to pass the font file location
if (!font.loadFromFile(/*
Put the filename that identify the font file you want to load*/"myfont.ttf")) {
return -1;
}
sf::Text message("Hello, World !", font);
while (sfmlWin.isOpen()) {
sf::Event e;
while (sfmlWin.pollEvent(e)) {
switch (e.type) {
case sf::Event::EventType::Closed:
sfmlWin.close();
break;
}
}
sfmlWin.clear();
sfmlWin.draw(message);
sfmlWin.display();
}
return 0;
}
आइए बताते हैं कि हमने वहां क्या किया।
सबसे पहले, हमने एक sf::Font
ऑब्जेक्ट बनाया। हमें फ़ॉन्ट डेटा को संग्रहीत करने के लिए इस ऑब्जेक्ट की आवश्यकता है जिसका उपयोग हम टेक्स्ट को प्रदर्शित करने के लिए करेंगे। उसके बाद, हमने loadFromFile
विधि कहा, जिसका उपयोग मेमोरी में फ़ॉन्ट लोड करने के लिए किया जाता है। हमें ध्यान देना चाहिए कि एसएफएमएल आपके सिस्टम फोंट के बारे में नहीं जानता है, इसलिए आपको एक फ़ाइल नाम प्रदान करने की आवश्यकता है, न कि फ़ॉन्ट नाम
उसके बाद, हमने एक sf::Text
ऑब्जेक्ट बनाया। हम एक 3 पैरामीटर कंस्ट्रक्टर लेते हैं:
- वह स्ट्रिंग जिसे आप प्रदर्शित करना चाहते हैं
- ऑब्जेक्ट का उपयोग करेगा फ़ॉन्ट
- पिक्सेल में वर्ण का आकार, जिसे हमने यहां नहीं दिया, इसलिए il को डिफ़ॉल्ट मान पर सेट किया जाएगा: 30
चूँकि sf::Text
ऑब्जेक्ट तैयार है, हमें बस इसे मुख्य sfml लूप में ड्रा करना है, sfmlWin
पर ड्रा विधि को कॉल करके विंडो ऑब्जेक्ट को प्रस्तुत करें जिसे हमने पहले बनाया था।