équivalent Objective-C code Actionscript
-
12-09-2019 - |
Question
Quelqu'un peut-il aider à convertir ce ce actionscript Objective-c?
if(mcMain.y >= stage.stageHeight - mcMain.height)
{
mainJumping = false;
mcMain.y = stage.stageHeight - mcMain.height;
}
Plus précisément, le Stage.stageHeight et mcMain.height?
La solution
Sans savoir ce que mcMain
et stage
sont, non, pas facilement. Je suppose que stage
fait référence à la zone principale d'étirage; en supposant que vous dessinez dans une sous-classe de UIView
, vous pouvez trouver les dimensions de la vue en appelant bounds
sur la vue:
CGRect bounds = self.bounds;
Ceci renvoie un CGRect
, ce qui en soi est composé d'un CGPoint
, appelé origin
, et un CGSize
appelé size
; ce sont des C-structs:
struct CGPoint {
CGFloat x;
CGFloat y;
};
struct CGSize {
CGFloat width;
CGFloat height;
};
Pour la hauteur du UIView
, vous pouvez le faire tout simplement:
CGFloat height = self.bounds.size.height;
En supposant que vous essayez de trouver la hauteur de la vue à partir de la classe de vue elle-même.
Je suppose que mcMain
fait référence à une sorte d'image ou un objet, de sorte que la mise en œuvre de ce dépend de ce qu'il est. Cependant, la plupart des coordonnées se fondent sur CGRect
, CGPoint
et CGSize
d'une manière ou d'une autre.
Autres conseils
Si vous venez du monde flash (comme je l'ai fait), je vous recommande fortement la recherche dans l'open source-cadre Cocos2D-iPhone: http://www.cocos2d-iphone.org/
Je l'ai réécrit votre code en Objective-C environ, juste pour vous donner une idée de ce qu'il pourrait ressembler.
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);
}