Objective-C-Äquivalent von Actionscript-Code
-
12-09-2019 - |
Frage
Kann jemand diese dieses Actionscript in Objective-C helfen konvertieren?
if(mcMain.y >= stage.stageHeight - mcMain.height)
{
mainJumping = false;
mcMain.y = stage.stageHeight - mcMain.height;
}
Insbesondere die stage.stageHeight und mcMain.height?
Lösung
Ohne zu wissen, was mcMain
und stage
sind, nein, nicht leicht. Ich gehe davon aus, dass stage
auf den Hauptzeichenbereich bezieht; vorausgesetzt, dass Sie innerhalb eines UIView
Unterklasse zeichnen, um die Abmessungen der Ansicht finden kann telefonisch bounds
von der Ansicht:
CGRect bounds = self.bounds;
Dies wird eine CGRect
zurückkehren, die an sich von einem CGPoint
, genannt origin
besteht, und eine CGSize
genannt size
; diese sind C-structs:
struct CGPoint {
CGFloat x;
CGFloat y;
};
struct CGSize {
CGFloat width;
CGFloat height;
};
Um die Höhe des UIView
zu finden, können Sie dies ganz einfach:
CGFloat height = self.bounds.size.height;
Unter der Annahme, dass Sie die Höhe der Ansicht aus der Ansicht Klasse, um herauszufinden, versuchen, sich selbst.
Ich vermute, dass mcMain
zu irgendeiner Art von Bild oder Objekt bezieht, so Umsetzung das ist davon abhängig, was es ist. Allerdings verlassen sich die meisten Koordinaten auf CGRect
, CGPoint
und CGSize
in eine oder andere Weise.
Andere Tipps
Wenn Sie aus der Flash-Welt kommen (wie ich), dann empfehle ich in die Open-Source-Suche Cocos2D-iPhone Rahmen: http://www.cocos2d-iphone.org/
Ich habe den Code in ungefährem Objective-C neu geschrieben, nur um Ihnen eine Vorstellung davon zu geben, was 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);
}