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?

Foi útil?

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);
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top