Saat saya menyentuh layar, sprite saya harus berubah

Saya mencoba mengembangkan suatu tindakan dan saya tidak mendapatkan efek ini:

saat saya menyentuh layar, sprite saya harus berganti ke yang lain dan ketika saya gantung, sprite saya harus kembali ke keadaan awal. Bagaimana cara mendeteksi waktu saya menyentuh layar dan membuat perubahan sprite?

terima kasih atas bantuan Anda.


person al3el    schedule 03.04.2011    source sumber
comment
Kita perlu mengetahui lebih banyak tentang masalah tersebut untuk membantu. Mohon jelaskan lebih lanjut apa yang Anda kembangkan, platform apa yang Anda gunakan, dan masalah sebenarnya yang Anda lihat.   -  person Jeremy Powell    schedule 03.04.2011


Jawaban (1)


Buat subkelas CCNode dengan variabel normalSprite dan pressedSprite. Di penginisialisasi, tambahkan ini sehingga menangani sentuhan:

[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:YES];

Tambahkan metode dengan tanda tangan ini untuk menangani ketika layar disentuh:

-(BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event {
    // Check that touch is within boundaries of this object
CGPoint touchLocation = [self convertTouchToNodeSpace:touch];
    if (!CGRectContainsPoint(CGRectMake(0, 0, self.boundingBox.size.width, self.boundingBox.size.height), touchLocation)) {
        return TRUE;
    }
    // Switch image
    [self removeChild:normalSprite cleanup:NO];
    [self addChild:pressedSprite];

    return TRUE;
}

Tambahkan metode dengan tanda tangan ini untuk menangani ketika jari berbunyi:

-(void)ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event {
    // Switch image back
    [self removeChild:pressedSprite cleanup:NO];
    [self addChild:normalSprite];
}

Anda juga dapat menambahkan ccTouchMoved (semuanya sama dengan ccTouchEnded) untuk menangani situasi di mana sentuhan bergerak keluar dan kembali ke dalam batas objek.

person lins314159    schedule 04.04.2011