2010-12-02 70 views
0

我使用cocos2d中的iPhone 我想創建一個敵人如何創建在cocos2d敵人類

看到我的代碼

#import <Foundation/Foundation.h> 
#import "cocos2d.h" 

@interface Enemies : CCSprite { 
     float imageHeight; 
} 
@property float imageHeight; 
+(id) enemies; 
@end 


@implementation Enemies 
@synthesize imageHeight; 

+(id) enemies{ 
return [[[self alloc] initWithFile:@"enemy.png"] autorelease]; 
} 
@end 

我想設置imageHeight類

float imageHeight = [enemy texture].contentSize.height; 

所以,每當我創建一個類敵人的實例,我應該有imageHeight設置正確嗎?

感謝

注:我想提高this code

+0

Enimies有屬性imageHeight和圖像高度屬性 – iOSPawan 2010-12-02 06:25:49

回答

0

艾哈邁德,保持enemies方法相同,並添加到您的類:

-(id) init { 
    if (self = [super init]) { 
     float textureHeight = [enemy texture].contentSize.height; 
     [self setImageHeight:textureHeight]; 
    } 
    return self; 
} 

這將設置imageHeight所有Enemies類的新實例。

0

覆蓋Enemies類中的initWithFile。 然後在它內部調用,[超級initWithFile傳遞相同的文件名字符串]

之後,您可以在下一行中設置imageHeight變量,因爲紋理已經加載並且可以訪問高度。

0

Cocos2d根據圖像本身自動設置一些東西的高度。尋找精靈的setHeight屬性,應該很容易在文檔中找到。

但是,你的問題看起來像它可以使用重新措詞。你的「敵人」應該是數據,與任何顯示(精靈)無關,除非你打算製作一個非常小的應用程序。

查看開始XNA書籍,瞭解如何抽象超類敵人和玩家的好例子,如果您可以使用C#並在iOS之間進行翻譯。他們的工作非常相似。 (我希望我知道一本適用於iPhone的優秀遊戲編程書,但是我打開的所有書都有缺陷或糟糕的設計,只有經驗豐富的程序員才能過去。

任何人,如果混合數據和圖像,通常意味着重新設計你的代碼