Jawapan: Jonas
(Jawapan terbaik)
Dalam lapisan yang mengandungi sprite, anda perlu memasukkan:
self.isTouchEnabled = YES;
Kemudian, anda boleh menggunakan acara yang sama dalam UIView, tetapi kaedah yang dipanggil adalah berbeza:
- (void)ccTouchesBegan:(NSSet*)touches withEvent:(UIEvent*)event
{
UITouch* touch = [touches anyObject];
//in your touchesEnded event, you would want to see if you touched
//down and then up inside the same place, and do your logic there.
}
Jawapan: Terence
Untuk mencapai kesan ini, anda boleh menetapkan kotak sempadan untuk sprite Dalam kod berikut, saya meletakkan semua sprite dalam NSMutableArray dan semak sama ada ia berada dalam kotak sempadan Pada masa yang sama, pastikan sentuhan telah dimulakan . Operasi:
Anda mungkin perlu melaraskan kedudukan x/y untuk memastikan "kedudukan tengah" sprite.
Jawapan: John
Kod David akan menyebabkan mesej ralat pada Cocos 0.7.3 dan 2.2.1, jadi saya menggunakan CGRectMake dan bukannya CGMakeRect dan menggunakan [touch locationInView:touch.view] untuk membetulkan ralat [touch location]:
Jawapan: Jonas
(Jawapan terbaik)
Dalam lapisan yang mengandungi sprite, anda perlu memasukkan:
Kemudian, anda boleh menggunakan acara yang sama dalam UIView, tetapi kaedah yang dipanggil adalah berbeza:
Jawapan: Terence
Untuk mencapai kesan ini, anda boleh menetapkan kotak sempadan untuk sprite Dalam kod berikut, saya meletakkan semua sprite dalam NSMutableArray dan semak sama ada ia berada dalam kotak sempadan Pada masa yang sama, pastikan sentuhan telah dimulakan . Operasi:
Jawapan: David Higgins
Berdasarkan jawapan Jonas, saya membuat penambahbaikan selanjutnya:
Anda mungkin perlu melaraskan kedudukan x/y untuk memastikan "kedudukan tengah" sprite.
Jawapan: John
Kod David akan menyebabkan mesej ralat pada Cocos 0.7.3 dan 2.2.1, jadi saya menggunakan CGRectMake dan bukannya CGMakeRect dan menggunakan [touch locationInView:touch.view] untuk membetulkan ralat [touch location]: