C++ SFML 1.6 Posisi Sprite dengan Mouse

Saat menggunakan SFML 1.6, saya mengalami masalah kecil, yang saya tahu ada solusi mudahnya, namun saat ini saya tidak dapat memikirkannya/belum dapat menemukan jawabannya melalui penelitian.

Saya tahu bahwa saya harus mengubah sprite ke posisi global menggunakan TransformToGlobal(someVector), tapi saya tidak tahu di mana harus meletakkannya.

Berikut adalah contoh kode yang saya gunakan yang tidak berfungsi karena tidak dalam posisi global.

if(sprite.GetSubRect().Contains(mouseX, mouseY))
    sprite.SetImage(someImage);
else
    sprite.SetImage(someOtherImage);

Saya mencoba menambahkan sprite.TransformToGlobal(sprite.GetPosition()); sebelumnya, namun tidak berhasil juga.


person user1062898    schedule 04.03.2012    source sumber


Jawaban (1)


Anda dapat mencoba menggunakan posisi mouse yang diubah dan kemudian memeriksa apakah sprite berisi mouse:

sf::Vector2f mousePos = App.ConvertCoords(App.GetInput().GetMouseX(), App.GetInput().GetMouseY());

if(sprite.GetSubRect().Contains(mousePos.x, mousePos.y))
    sprite.SetImage(someImage);
else
    sprite.SetImage(someOtherImage);
person priomsrb    schedule 14.03.2012