Objectivo-C equivalente de código Actionscript
-
12-09-2019 - |
Pergunta
alguém pode ajudar converter este presente ActionScript para Objective-c?
if(mcMain.y >= stage.stageHeight - mcMain.height)
{
mainJumping = false;
mcMain.y = stage.stageHeight - mcMain.height;
}
Especificamente o Stage.stageHeight e mcMain.height?
Solução
Sem saber o que mcMain
e stage
são, não, não é fácil. Presumo que stage
refere-se à área de desenho principal; supondo que você está desenhando dentro de uma subclasse UIView
, você pode encontrar as dimensões da vista chamando bounds
sobre a vista:
CGRect bounds = self.bounds;
Isso irá retornar um CGRect
, que em si é composta por um CGPoint
, chamado origin
, e uma CGSize
chamado size
; estes são C-estruturas:
struct CGPoint {
CGFloat x;
CGFloat y;
};
struct CGSize {
CGFloat width;
CGFloat height;
};
Para encontrar a altura do UIView
, você pode fazê-lo muito simplesmente:
CGFloat height = self.bounds.size.height;
Assumindo que você está tentando descobrir a altura da visão de dentro da própria classe vista.
Eu estou supondo que mcMain
refere-se a algum tipo de imagem ou objeto, de modo a implementação de que é dependente do que é. No entanto, a maioria das coordenadas dependem CGRect
, CGPoint
e CGSize
de alguma forma ou de outra.
Outras dicas
Se você estiver vindo do mundo do Flash (como eu fiz), então eu recomendo olhando para o quadro Cocos2D-iPhone open source: http://www.cocos2d-iphone.org/
Eu reescrito seu código em aproximadamente Objective-C, só para dar uma idéia do que pode parecer.
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);
}