我正在使用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
答案 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,如果你混合数据和图像,通常意味着重新设计你的代码