: การแสดงตัวเลขบนหน้าจอ
ในการเขียนเกมด้วย SFML สิ่งที่หลายๆเกมจะขาดไม่ได้เลย คือ การแสดง Score นั่นเอง เพื่อนๆอาจมีวิธีที่แตกต่างกันออกไป จากการค้นคว้าจึงได้วิธีมาในแบบผสม ที่คิดว่าน่าจะะมีประโยชน์กับเพื่อนบ้าง เลยอยากจะมาแชร์กัน
1.ขั้นแรก include library เพิ่ม คือ
#include <sstream>
2. สร้างตัวแปรเก็บค่าตัวเลข
int score = 0;
3. สร้างส่วนแสดงข้อความและตั้งฟอนต์ต่างๆ
sf::Font font; //ประกาศ ฟอนต์ ชื่อ font
font.loadFromFile(“font/Barrio Santo.ttf”); //ดึงฟอนต์ ที่ Download ไว้ มาใช้
sf::Text scoreText;
scoreText.setFont(font);
scoreText.setString(“0”); //ตอนแรกให้แสดงเลข 0 ก่อน จริงๆดึง score มาแสดงผ่านตัวแปรของ stringstream ก็ได้
4. สร้างเงื่อนไขไว้ใน loop while ขณะที่ window.isOpen()
ในที่นี้ขอสร้างเงื่อนไข ถ้ามีการกดเมาส์ 1 ครั้ง ให้ score เพิ่มขึ้น 10
if (sf::Mouse::isButtonPressed(sf::Mouse::Left))
{
while (sf::Mouse::isButtonPressed(sf::Mouse::Left)) //นับคลิ๊ก 1 ครั้ง
{
SFML_SLEEP_HPP(1);
}
score = score + 10;
std::stringstream ss; //ประกาศตัวแปร ชื่อ ss มารับเก็บ variable ของเรา
ss << score; //นำค่า score เก็บไว้ใน stringstream ชื่อ ss
scoreText.setString(ss.str()); //นำตัวแปรชื่อ ss ที่เก็บค่า score เก็บเป็น string เพื่อส่งให้ scoreText เก็บไว้เพื่อแสดง
}
5.แสดงตัวเลขของเรากัน!
window.clear(); //อย่าลืมเคลียร์ display (ไม่น่าจะมีใครลืมนะ)
window.draw(scoreText); //แสดงข้อความที่เก็บไว้ใน scoreText
window.display();
XX ตัวอย่างภาพรวมโปรแกรม XX

xxx ผลลัพธ์ที่ได้ xxx


จบแล้วสำหรับวิธีแสดงตัวเลขใน SFML พื้นฐานๆ เป็นอีกวิธีหนึ่งที่เลือกมาแชร์ ที่เหลืออยากนำไปประยุกต์ใช้ยังไงก็เชิญเลยค่าา
