zemin için çarpışan objelere farklı sürtünme katsayıları verdim, çünkü birinin malzemesi plastik, diğeri metal olabilir, bu da sürtünme değerlerini etkileyecektir.
dikdörtgenlere farklı ağırlıklar atadım ve zeminle etkileşmelerini sağladım.
ortaya çıkan tablo hayli ilginç oldu.
#include <SFML/Graphics.hpp> // SFML grafik kütüphanesini dahil et #include <cmath> // Matematik fonksiyonları için gerekli kütüphane #include <sstream> // String akışları için gerekli kütüphane
// Mavi gökyüzü (dikey olarak tam pencere yüksekliği)
sf::RectangleShape sky(sf::Vector2f(WINDOW_WIDTH, WINDOW_HEIGHT));
sky.setFillColor(sf::Color(135, 206, 250)); // Açık mavi gökyüzü rengi
// Mavi dikdörtgenler oluştur
sf::RectangleShape rectangle1(sf::Vector2f(50.0f, 50.0f));
rectangle1.setFillColor(sf::Color::Blue);
rectangle1.setPosition(100, FLOOR_Y); // Başlangıç konumu
sf::RectangleShape rectangle2(sf::Vector2f(50.0f, 50.0f));
rectangle2.setFillColor(sf::Color::Red);
rectangle2.setPosition(500, FLOOR_Y); // Başlangıç konumu
// Hız değişkenleri
float xVelocity1 = 400.0f; // ilk dikdörtgenin yatay hızı
float xVelocity2 = -150.0f; // ikinci dikdörtgenin yatay hızı
sf::Clock clock; // Zamanlayıcı oluştur
while (window.isOpen()) // Pencere açık olduğu sürece
{
sf::Event event;
while (window.pollEvent(event)) // Olayları kontrol et
{
if (event.type == sf::Event::Closed) // Pencere kapatıldıysa
window.close(); // Pencereyi kapat
}
// Dikdörtgenlerin konumunu güncelle
rectangle1.move(xVelocity1 * dt, 0); // ilk dikdörtgeni yatay olarak hareket ettir
rectangle2.move(xVelocity2 * dt, 0); // ikinci dikdörtgeni yatay olarak hareket ettir
// Pencereyi temizle ve zemin ile gökyüzünü çiz
window.clear();
window.draw(sky); // Gökyüzünü çiz
window.draw(floor); // Zemini çiz
window.draw(rectangle1); // ilk dikdörtgeni çiz
window.draw(rectangle2); // ikinci dikdörtgeni çiz
window.display(); // Pencereyi güncelle
}