मेरे एप्लिकेशन को को एप्लिकेशन विंडो में एम्बेड करने के लिए एक कंसोल की आवश्यकता होती है, उदाहरण के लिए एक प्रोग्राम में ऑटोकैड होगा जहां कंसोल कमांड के लिए विंडो के निचले हिस्से में है।एप्लिकेशन के भीतर एक कंसोल लिखना
मैं अपने आवेदन के भीतर सांत्वना की जरूरत है ताकि मैं चर और अन्य चीजों को बदल सकते हैं, तो कंसोल एक पूरी तरह से नष्ट हो खोल होने की जरूरत नहीं है।
इस समय मेरे पास मेरे आवेदन के भीतर एक सरल कंसोल है, लेकिन यह एक टर्मिनल (खोल) की तुलना में बहुत गुस्सा लगता है, जो मैं कंसोल की तरह होना चाहता हूं।
तरह से है कि मैं इसे सांत्वना मैं के साथ किया है उपयोगकर्ता TAB
कुंजी सांत्वना शो दबाता है, तो वे अपने आदेश/पंक्ति में टाइप कर सकते हैं है, एक बार Return
कुंजी दबाए गए स्ट्रिंग को दबा दिया गया है जिसे उन्होंने टाइप किया है पार्स किया गया है और कमांड संसाधित हो गया है।
मैं अपनी एप्लिकेशन विंडो में टेक्स्ट प्रिंट करने के लिए sf::Text
ऑब्जेक्ट्स का उपयोग कर रहा हूं। कुल 5 sf::Text
ऑब्जेक्ट्स जिनका उपयोग किया जाता है, पिछले आदेश/त्रुटि संदेशों के लिए 4 और वर्तमान कमांड लाइन के लिए 1 हैं। जब Return
कुंजी दबाया जाता है तो चौथा sf::Text
अपनी वर्तमान स्ट्रिंग को तीसरे, तीसरे से दूसरे, दूसरे से पहले और 1 को वर्तमान कमांड स्ट्रिंग में बदल देता है, तो वर्तमान कमांड स्ट्रिंग को साफ़ किया जाता है और फिर इनपुट के लिए तैयार हो जाता है। इस तरह कमांड और/या त्रुटियों के 4 'इतिहास' के लिए जगह है। सबसे महान नहीं, लेकिन यह सबसे अच्छा था जिसके साथ मैं आ सकता था। निश्चित रूप से sf::Text
ऑब्जेक्ट्स जोड़कर इतिहास की मात्रा बदला जा सकता है। तो अंत में यह कैसे मैं स्क्रीन
sf::RectangleShape rectangle;
rectangle.setSize(sf::Vector2f(App->getSize().x, App->getSize().y/3));
rectangle.setPosition(0, 0);
rectangle.setFillColor(sf::Color::black);
App->draw(rectangle); // This renders the console looking background rectangle
App->draw(CLine); // This renders the current command line
for(int i = 4; i >= 0; --i) // This renders the history as described above, their idevidual positions are setup earlier on in the program
{
CHistory[i].setString(CS[i]);
App->draw(CHistory[i]);
}
App
को सांत्वना प्रस्तुत करना है तो बस एक sf::RenderWindow*
मेरे समग्र सवाल यह है कि, है वहाँ एक रास्ता है कि मैं अपने SFML में एक सांत्वना एम्बेड कर सकते हैं खिड़की बिना किसी कंसोल की तरह दिखने के लिए प्रस्तुत की गई टेक्स्ट ऑब्जेक्ट्स की एक छवि होने के बिना। मैं अपने आवेदन के भीतर एक वास्तविक कंसोल/खोल/टर्मिनल रखना पसंद करूंगा। मानक बाश खोल की तरह, लेकिन निश्चित रूप से मेरा खुद का खोल दुभाषिया।
मैं एसएफएमएल के लिए यह करने के लिए नहीं हूं, मैंने टैग के रूप में एसएफएमएल जोड़ा और कोड उदाहरणों में यह दिखाने के लिए कि मैं एसएफएमएल का उपयोग कर रहा था। मुझे पता है कि मुझे इसे खुद लिखना है, मैं इसके बाद क्या कर रहा हूं इस पर दिशा है। अन्य लोग अपने आवेदन में कंसोल लिखने के बारे में कैसे गए हैं। : डी – Elgoog
एक बार जब आप पहचान लें कि आप क्या हासिल करना चाहते हैं तो मैं आपके प्रश्न को कुछ छोटे हिस्सों में परिष्कृत करने का सुझाव दूंगा। आपकी आवश्यकताओं क्या हैं? क्वैक या अवास्तविक टूर्नामेंट में से किसी एक का उपयोग करने का प्रयास करें या जिस भी गेम में आप रुचि रखते हैं। –
वुल्फियर ने स्पष्ट रूप से वेबकिट पर आधारित कुछ विकसित किया: http://www.youtube.com/watch?v=c-4WdtTGIkg&feature=relmfu –