ในขณะที่ฉันสัมผัสหน้าจอสไปรท์ของฉันต้องเปลี่ยน

ฉันกำลังพยายามพัฒนาการกระทำแต่ไม่สามารถรับเอฟเฟกต์นี้ได้:

ขณะที่ฉันสัมผัสหน้าจอ สไปรท์ของฉันต้องเปลี่ยนไปใช้อันอื่น และเมื่อฉันปิดเครื่อง สไปรท์จะต้องกลับสู่สถานะเริ่มต้น ฉันจะตรวจสอบเวลาที่ฉันกำลังสัมผัสหน้าจอและทำการเปลี่ยนแปลงสไปรท์ได้อย่างไร

ขอบคุณสำหรับความช่วยเหลือของคุณ.


person al3el    schedule 03.04.2011    source แหล่งที่มา
comment
เราจำเป็นต้องทราบข้อมูลเพิ่มเติมเกี่ยวกับปัญหาเพื่อช่วย โปรดอธิบายเพิ่มเติมอีกหน่อยว่าคุณพัฒนาอะไร แพลตฟอร์มใดที่คุณใช้ และปัญหาที่คุณเห็น   -  person Jeremy Powell    schedule 03.04.2011


คำตอบ (1)


สร้างคลาสย่อยของ CCNode ด้วยตัวแปร NormalSprite และ pressedSprite ใน Initialiser ให้เพิ่มสิ่งนี้เพื่อจัดการกับการสัมผัส:

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

เพิ่มวิธีการที่มีลายเซ็นนี้เพื่อจัดการเมื่อสัมผัสหน้าจอ:

-(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;
}

เพิ่มวิธีการที่มีลายเซ็นนี้เพื่อจัดการเมื่อนิ้วหลุด:

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

คุณยังสามารถเพิ่ม ccTouchMoved (ทุกอย่างเหมือนกับ ccTouchEnded) เพื่อจัดการกับสถานการณ์ที่การสัมผัสเคลื่อนออกไปด้านนอกและด้านหลังภายในขอบเขตของวัตถุ

person lins314159    schedule 04.04.2011