代码之家  ›  专栏  ›  技术社区  ›  Maciej Swic

cocos2d屏幕定向问题

  •  1
  • Maciej Swic  · 技术社区  · 14 年前

    我使用cocos2d 0.99-rc0中的标准旋转代码来支持纵向+两种横向模式。我以纵向模式显示菜单,然后屏幕旋转到实际游戏的横向。问题是,当我回到纵向,整个主菜单场景关闭了一半的屏幕,就像有人移动了锚定点什么的。

    有什么想法吗?

    1 回复  |  直到 14 年前
        1
  •  1
  •   Josh Kahane    14 年前

    一个可能的简单解决方案是在场景开始时应用方向,然后在wards之后重新应用菜单项的位置,使其全部对齐。

    我执行以下操作以更改屏幕方向:

    首先,第一行进入init方法,我设置了一个计时器,在0.5秒后启动。把它放在计时器里意味着在我的游戏中场景转换(淡入)工作顺利,屏幕不会旋转/旋转,但你可能不需要使用这个。

    [self schedule:@selector(rotate:) interval:0.5];
    
    -(void)rotate:(ccTime) dt{
        [[CCDirector sharedDirector] setDeviceOrientation:CCDeviceOrientationLandscapeLeft];
        [self unschedule:@selector(rotate:)];
    }
    

    关键线在下面,您不一定需要计时器:

    [[CCDirector sharedDirector] setDeviceOrientation:CCDeviceOrientationLandscapeLeft];
    

    当然,您可以根据不同的方向更改此位:

    CCDeviceOrientationLandscapeLeft
    CCDeviceOrientationLandscapeRight
    CCDeviceOrientationPortrait
    CCDeviceOrientationPortraitUpsideDown
    

    祝你好运。