2009-07-11 5 views
0

Kann mir jemand helfen, dieses ActionScript in Objective-c umzuwandeln?Objective-C-Äquivalent von Actionscript-Code

if(mcMain.y >= stage.stageHeight - mcMain.height) 
{ 
    mainJumping = false; 
    mcMain.y = stage.stageHeight - mcMain.height; 
} 

Speziell die stage.stageHeight und mcMain.height?

Antwort

2

Ohne zu wissen, was mcMain und stage sind, nein, nicht leicht. Ich nehme an, dass sich stage auf den Hauptzeichnungsbereich bezieht; vorausgesetzt, dass Sie innerhalb eines UIView Unterklasse zeichnen, können Sie die Abmessungen der Ansicht finden, indem bounds auf die Ansicht Aufruf:

CGRect bounds = self.bounds; 

Dieses eine CGRect zurück, die an sich von einem CGPoint besteht, genannt origin, und eine CGSize genannte size; diese sind C-structs:

struct CGPoint { 
    CGFloat x; 
    CGFloat y; 
}; 

struct CGSize { 
    CGFloat width; 
    CGFloat height; 
}; 

Um die Höhe der UIView zu finden, können Sie dies ganz einfach tun:

CGFloat height = self.bounds.size.height; 

Unter der Annahme, dass Sie die Höhe der Ansicht, um herauszufinden, von innen versuchen die Sichtklasse selbst

Ich vermute, dass mcMain bezieht sich auf eine Art von Bild oder Objekt, so dass die Umsetzung davon abhängig ist, was es ist. Die meisten Koordinaten beruhen jedoch auf der einen oder anderen Art auf CGRect, CGPoint und CGSize10.

0

Wenn Sie sich von der Welt-Flash kommen (wie ich), dann empfehle ich in den Open-Source-Cocos2D-iPhone Rahmen suchen: http://www.cocos2d-iphone.org/

Ich habe den Code in ungefährem Objective-C neu geschrieben, nur um dir eine Vorstellung davon zu geben, wie es aussehen könnte.

float stageHeight = [UIScreen mainScreen].bounds.size.height; 
float guyHeight = mainGuy.contentSize.height; 

if(mainGuy.position.y >= stageHeight - guyHeight) 
{ 
    mainJumping = NO; 
    mainGuy.position = ccp(mainguy.position.x, stageHeight-guyHeight); 
}