我知道这个话题在这里的100篇帖子中都有涉及,但我在这个特定的例子中遇到了很多麻烦,无法理解。
基本上,我正在使用Spritebuilder将精灵/节点导入我的游戏。我在GameScene
类的正文中导入了某个特定类的精灵,但我希望能够在我的精灵类中定义一个变量,然后从GameScene
类中编辑它。例如,如果我的精灵在GameScene中收集了一枚硬币,我想在精灵类中的update
方法中更改我的精灵的速度。
下面是我的代码,但不幸的是它不起作用。变量递增Y
和递增X
在我的GameScene
类中似乎不可用。我知道这是因为我没有正确实例化Penguin
类,但我不知道如何正确创建该类的实例,同时导入它的. ccbi文件。问题行被注释,旁边有一堆**可以轻松找到它。它在GameScene. m
中。我真的很感谢帮助,已经在这个问题上卡住了几个小时。
企鹅
#import "CCSprite.h"
@interface Penguin : CCSprite
{
float xPosition;
float yPosition;
}
@property (nonatomic,assign) float increaseY;
@property (nonatomic,assign) float increaseX;
@end
企鹅M
#import "Penguin.h"
@implementation Penguin
@synthesize increaseX;
@synthesize increaseY;
- (id)init {
self = [super init];
if (self) {
CCLOG(@"Penguin created");
}
return self;
}
-(void) update:(CCTime)delta
{
self.position = ccp(self.position.x + increaseX,self.position.y + increaseY);
}
@end
游戏场景
#import "CCNode.h"
@interface GameScene : CCNode
@end
游戏场景。M
#import "GameScene.h"
#import "Penguin.h"
@implementation GameScene
{
CCPhysicsNode *_physicsNode;
CCNode *_catapultArm;
CCNode *_levelNode;
CCNode *_contentNode;
}
// is called when CCB file has completed loading
- (void)didLoadFromCCB {
self.userInteractionEnabled = TRUE;
CCScene *level = [CCBReader loadAsScene:@"Levels/Level1"];
[_levelNode addChild:level];
}
// called on every touch in this scene
- (void)touchBegan:(UITouch *)touch withEvent:(UIEvent *)event {
[self launchPenguin];
}
- (void)launchPenguin {
// loads the Penguin.ccb we have set up in Spritebuilder
CCNode* penguin = [CCBReader load:@"Penguin"];
penguin.position = ccpAdd(_catapultArm.position, ccp(16, 50));
[_physicsNode addChild:penguin];
//THE FOLLOWING LINE DOES NOT WORK********************************
penguin.increaseY = 1;
// Gives Error------Property "increaseX" not found on object of type "CCNode *"
self.position = ccp(0, 0);
CCActionFollow *follow = [CCActionFollow actionWithTarget:penguin worldBoundary:self.boundingBox];
[_contentNode runAction:follow];
}
你必须改变这一行:
CCNode* penguin = [CCBReader load:@"Penguin"];
关于这一行:
Penguin* penguin = (Penguin*)[CCBReader load:@"Penguin"];
在您使用的前一行中,编译器给了您一个错误,因为CCNode
类没有名为increaseX
的属性increaseX
是Penguin
类的一部分。如果你想访问Penguin
类的属性,你需要使用cast并让编译器知道,你使用CCBReader
加载的实际上是Penguin
实例。
问题内容: 如何将变量从一个文件导入到另一个文件? 示例:具有变量以及如何将其传递给? 如何将 所有 变量从一个导入到另一个? 问题答案: 将导入file1中的所有对象和方法
如何将变量从一个文件导入到另一个文件? 示例:具有变量和如何将它们传递到? 如何将所有变量从一个导入到另一个?
我是java新手,我不知道如何从另一个类访问变量 我正在尝试编写一个代码来发送带有未存储在本地的附件的邮件。我想访问SendMail类中ExcelFile类中编写的变量 如何在另一个类中访问excelFileAsByte并发送邮件而不将其存储在本地。我可以使用addBodyPart和ByteArrayResource将文件添加为附件吗。
问题内容: 好的… 我已经搜索并寻找了可以直接回答我的问题的答案,但是没有成功。我的问题很简单,老实说,我想在那里会有一个更直接的答案。请记住,我还是该语言的新手,并且仍在学习中。 _因此,我将使用和作为我的两个文件,以及作为示例变量。_变量包含在中。如何将变量导入, 然后通过更改为另一个值, 然后 使用新值更新变量? 我不确定这是否可能,但我想一定会这样。我正在使用python 2.7.11,谢