我知道cocos2d有調度回調來做很好的事情,但是當你需要使用一個CCAction(如CCMoveTo)來將一個精靈從位置a移動到b時,你沒有能力只要動作有效,就對小精靈位置進行小的位置安排。cocos2d子分類
我發現的唯一可能的方法是通過製作一個CCMoveTo的子類來檢查障礙物,並因此提供某種向左或向右的移動,以便從頂部移動到底部的精靈iPhone屏幕。問題是子類沒有訪問父類的實例變量(如startPosition_之一),因爲它們沒有被聲明爲屬性。
所以我用下面的代碼片段來克服這種情況,但我不知道我做錯了什麼......
- (void)myUpdate:(ccTime)time {
if(delegate && method_) {
NSNumber *num = (NSNumber *)[delegate performSelector:method_ withObject:ownTarget];
if(num) {
double xpos = [num doubleValue];
[num release];
CCMoveTo *parent = [super retain];
parent->startPosition_.x += xpos;
[parent release];
}
[super update:time];
}
它是正確的保留/釋放超一流的? 「[超級更新:時間];」在代碼的底部將做出最終定位。