Saya mengembangkan permainan kartu di XNA.
Apakah ada OnClick
peristiwa dalam XNA untuk objek?
Saya mencoba membuat kartu bergerak ketika pemain mengkliknya. Dalam proyek ini, ada kelas Sprite yang menggambar kartunya, tapi saya agak macet karena saya tidak tahu cara menggunakan OnClick
acara atau hal-hal seperti itu.
if(MouseLeftPress()){ DoSomething(); }
, di manaMouseLeftPress()
adalah metode yang Anda tulis untuk membandingkan keadaan mouse tombol saat ini dan sebelumnya. Saya menemukan ini lebih mudah daripada mengimplementasikan acara sebagian besar waktu.Anda harus menerapkannya sendiri. Coba lihat tutorialnya di: http://bluwiki.com/go/XNA_Tutorials/Mouse_Input
sumber
XNA hanya memberi Anda cukup untuk membangun kelas input Anda sendiri - dan Anda harus melakukannya dengan mempertimbangkan utilitas yang mereka tawarkan.
Saya akan merekomendasikan kelas input mouse yang dijelaskan dalam posting blog ini ( kode sumber ). Ini mendeteksi tombol ditekan, ditahan atau dilepaskan, dan memungkinkan Anda mendapatkan informasi itu baik melalui polling atau acara.
Pada catatan terkait, posting blog yang sama juga menyediakan kelas perangkat input keyboard dan gamepad.
sumber
Kode aktual untuk memeriksa klik mouse di XNA adalah sesuatu seperti ini;
sumber
Jika game Anda 3D, Anda dapat menerapkan memilih, yang dijelaskan di sini: http://create.msdn.com/en-US/education/catalog/sample/picking_triangle . Pada dasarnya ini menciptakan sinar dari kamera ke tempat klik mouse (dengan sedikit matriks tidak memproyeksikan di sana), maka Anda memeriksa untuk melihat apakah ada objek Anda yang berpotongan dengan sinar.
Jika gim Anda 2D, Anda harus bisa menerjemahkan koordinat jendela ke koordinat gim dengan cukup mudah. Kemudian periksa untuk melihat apakah koordinat yang dipilih berada dalam batas-batas objek Anda.
sumber
Cara paling sederhana untuk melihat apakah mouse diklik adalah ini
sekarang dalam metode pembaruan tambahkan ini
Semoga ini bisa membantu
sumber