【问题标题】:why I am getting different CGFloat value in different devices为什么我在不同的设备上得到不同的 CGFloat 值
【发布时间】:2016-08-21 16:45:51
【问题描述】:

嗨,我的 CGFloat 值根据设备显示不同的值。

我正在使用 iPhone 版 cocos2d 游戏

我正在尝试打印 dt

在 iPhone 5 中显示 0.0166666675

但在 iPhone 6 中显示 5.0176358830256065E-315

我正在使用此代码

-(void)update:(CGFloat)dt {
static CGFloat time = 0;
time += dt;
 if (time >= 3) {
    [self unscheduleUpdate];
    time = 0;
    if ([self getChildByTag:999].visible)
    {
        [self hideGuide];
    }
} }

【问题讨论】:

  • 代码中显示了多个 CGFloat 值 - 哪一个让您感到困惑?
  • 你打印了什么结果?是time 的结果吗?或dt ?这个dt 参数是什么?它与设备时间或日期有关吗?
  • 我打印dt值
  • 它是每次打印该值还是只打印一次?请注意,它的值非常接近0。 @Lion dt 是增量时间,自上次调用 update 方法以来经过的时间。
  • 我假设这是一个真实的设备(又名不是模拟器),而你 print 使用 NSLog(不是 Xcode 的调试值)?

标签: ios iphone cocos2d-iphone cocos2d-x cocos2d-x-3.0


【解决方案1】:

您得到不同的结果,因为 32 位和 64 位设备的 CGFloat 值不同,

typedef float CGFloat;// 32-bit
typedef double CGFloat;// 64-bit

我想这会对你有所帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-02
    相关资源
    最近更新 更多