2009-10-19 79 views
0

我有一個名爲sprite.I的昆蟲子類都在GameLayer創建該類的實例 ,然後使用具有 初始化,是否有可能在cocos2d來重新初始化對象

insect *bgg = [insect spriteWithFile:@"bird2a.gif"];

然後我設置一個計時器(10秒)改變圖像使用

*bgg = [insect spriteWithFile:@"2.gif"];

但我的節目crashes.Now我的問題是有可能 重新初始化的對象,或者它是不可變的??

我還有一個問題,當我在我的昆蟲類不能在「BGG」對象檢測觸摸使用

- (BOOL) ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *) event
{
UITouch *touch = [touches anyObject];
CGPoint point2 = [touch locationInView:[touch view]];

CGPoint cpoint=[[Director sharedDirector] convertCoordinate:point2]; 
NSLog(@"In touch began"); 


}

在GameLayer.But宣佈 當我在GameLayer使用此功能可以 檢測觸摸。

最近我的做法有什麼不對嗎?Plz有人解釋。

高級thanx爲您的答覆。

回答

0

你的程序崩潰,因爲你有一個錯字。從'* bgg'中刪除'*'。這意味着您正在解引用指針,然後嘗試將新對象的創建應用於解除引用的指針。你只是想

bgg = [insect spriteWithFile:@"2.gif"];

然而,這是矯枉過正創造一個全新的精靈只是改變形象。 A SpriteTextureNode的一個子類,因此只需使用TextureNode的texture屬性爲Sprite提供不同的圖像。

 
Texture2D *newImage = [[TextureMgr sharedTextureMgr] addImage:@"2.gif"]; 
bgg.texture = newImage; 

相關問題