我的代码有一个AppDelegate,一个视图控制器,一个主视图,以及一个名为Sprite.h和Sprite.m的独立类。我的mainview.m有
if (!eye) {
eye = [[Sprite alloc] initWithPic: @"eye1.png"
frameCnt: 1
frameStep: 1
speed: CGPointMake(-5, 5)
pos: CGPointMake(300, 400)];
}
调用sprite类并让它创建一个以各种随机方向在屏幕上飞行的对象。我需要做到这一点,如果它的位置击中玩家位置然后他死了,但是玩家位置的变量在主视图中
有没有办法在sprite.m中与主视图共享眼睛的位置?m?
答案 0 :(得分:0)
通过在Sprite.h中声明变量,使变量成为Sprite
clas中的属性。然后,由于您在主视图中有Sprite
的实例,因此您可以将其引用为eye.location
。
答案 1 :(得分:0)
您的MainView.m是具有子级称为单独类(Sprite.m)的父级。如果你想从Sprite.m获取变量。您应该为sprite类声明委托如下:
@class Sprite;
@protocol SpriteDelegate
-(void)sprite:(Sprite*)sprite location:(CGPoint*)point;
@interface Sprite: UIView<...>{
CGPoint* point;
//Your variables ...
}
@property (assign) id <SpriteDelegate> delegate;
//others property ...
@end
在你的sprite.m
中-(void)updatePoint{ //your function when you want to send your point to mainview
[self.delegate sprite:self location:yourPoint];
}
在mainview.h中,您应该添加委托
@interface MainView: UIView<SpriteDelegate>
在你的mainview.m中:
if (!eye) {
eye = [[Sprite alloc] initWithPic: @"eye1.png" frameCnt: 1 frameStep: 1 speed: CGPointMake(-5, 5) pos: CGPointMake(300, 400)];
eye.delegate = self;
}
-(void)sprite:(Sprite*)sprite location:(CGPoint*)point{
//Do with your point your received
}