Nov 6 · 1 min read
62010474 เช็คการชน และผลกระทบที่มีต่อตัวละคร ตามทิศทาง
สวัสดีครับวันนี้ผมจะมาเขียนเรื่องเกี่ยวกับ เช็คการชนวัตถุใน SFML ครับ
การเช็คว่าวัตถุชนกันไหม สามารถเช็คได้ด้วยคำสั่ง getGlobalBounds() หลักการของการทำงานคือ เช็คว่า วัตถุของเราซ้อนทับ(intersect)กันหรือเปล่า
หลังจากเช็คการชนแล้ว เราต้องเขียนคำสั่งให้ทำเมื่อเกิดการชนกัน
player.track = วัตถุ 1
enemies.track = วัตถุใดๆ
โดยของผมคือเมื่อ วัตถุ 1 ชนกับ วัตถุต่างๆ วัตถุ 1 จะกระเด็นถอยหลังตามทิศทางการเดินของวัตถุ
โดยหลักการคือ การนำระยะห่างของ แกน X และ แกน Y มาเทียบกัน

โดยถ้า Delta X มากกว่า Delta Y แสดงว่าวัตถุอยู่แนวราบ ซึ่งวัตถุ 1 จะกระเด็นเป็นแนวราบ ซ้าย และ ขวา
แต่ถ้า Delta Yมากกว่า Delta Xแสดงว่าวัตถุอยู่แนวดิ่ง ซึ่งวัตถุ 1 จะกระเด็นเป็นแนวดิ่ง บน และ ล่าง


ขอบคุณสำหรับการอ่าน
