2010-12-02 73 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的优秀游戏编程书,但是我打开的所有书都有缺陷或糟糕的设计,只有经验丰富的程序员才能过去。

任何人,如果混合数据和图像,通常意味着重新设计你的代码