[62010029][SFML] Display Number in A Window

mrzombit
mrzombit
Nov 3 · 2 min read

: การแสดงตัวเลขบนหน้าจอ

ในการเขียนเกมด้วย 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

เริ่มเปิดหน้าต่างมาให้ แสดง 0
เริ่มเปิดหน้าต่างมาให้ แสดง 0
เปิดหน้าต่างมาก็แสดงเลข 0 ตามที่เขียนไว้
พอคลิ๊กเมาส์ 1 ครั้ง ค่าเพิ่มและแสดงตามที่เขียนไว้ เย่!

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

    mrzombit

    Written by

    mrzombit

    𝕵𝕰𝕾𝖀𝕾’𝕾 𝕬𝕷𝖂𝕬𝖄𝕾 𝕷𝕬𝖅𝖄

    Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
    Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
    Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade