如何在cocos2d中创建敌人类

时间:2010-12-02 06:19:44

标签: iphone objective-c cocos2d-iphone

我正在使用cocos2d作为iphone 我想为敌人创建一个类

查看我的代码

 #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; 

所以每当我创建一个Enemies类的实例时,我应该正确设置imageHeight吗?

由于

注意:我正在努力改进this code

3 个答案:

答案 0 :(得分:0)

ahmed,保持enemies方法相同,并将其添加到您的班级:

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

这将为imageHeight类的所有新实例设置Enemies

答案 1 :(得分:0)

在Enemies类中覆盖initWithFile。 然后在里面调用,[超级initWithFile传递相同的文件名字符串]

之后你可以在下一行设置imageHeight变量,因为纹理已加载并且高度可以访问。

答案 2 :(得分:0)

Cocos2d会根据图像本身自动设置某些内容的高度。查找精灵的setHeight属性,应该很容易在文档中找到。

但是,您的问题似乎可以使用重写。你的“敌人”应该是数据,与任何显示器(精灵)无关,除非你打算做一个非常小的应用程序。

如果您可以使用C#并在iOS之间进行翻译,请查看Beginning XNA书籍,了解如何抽象超类敌人和玩家的好例子。他们的工作方式非常相似。 (我希望我知道一款适合iPhone的游戏编程书,但我打开的所有游戏都有缺陷或糟糕的设计,只有经验丰富的程序员才能过去。

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