【问题标题】:Images handling in cocos2d android?cocos2d android中的图像处理?
【发布时间】:2013-02-08 02:45:36
【问题描述】:

根据不同的2屏幕分辨率,不能为每个设备使用一个图像。

那么,在 Cocos2d-android 中如何管理这个东西呢?

使用 setScale() 没问题。

【问题讨论】:

    标签: cocos2d-android


    【解决方案1】:

    您必须创建一个可以根据屏幕大小获取适当图像的方法。

    以下步骤可以帮助您获取图像

    1) 获取屏幕尺寸并将其存储在变量中

    我用过

    WindowManager wm = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE);
    display = wm.getDefaultDisplay();
    if(display.getWidth()<=320)
    {
        GameCons.setSCreenSize(1);
    }else if(display.getWidth()<=480)
    {
        GameCons.setSCreenSize(2);
    }else if(display.getWidth()<=860)
    {
        GameCons.setSCreenSize(3);
    }else
    {
        GameCons.setSCreenSize(4);
    }
    

    现在我们将屏幕尺寸(1,2,3,4)存储在变量 screenSize 中

    2)现在为您正在使用的图像指定名称

    假设如果我们有四个分辨率的 player.png 图像 然后将名称指定为 player_1.png player_2.png player_3.png player_4.png

    这些是不同分辨率的相同图像

    3) 现在创建将图像名称返回为的方法

    public static String getImageURI(String name) {
            if (screenSize== 1) {
                return name + "_1.png";
            } else if (screenSize== 2) {
                return name + "_2.png";
            } else if (screenSize== 3) {
                return name + "_3.png";
            } else {
                return name + "_4.png";
            }
        }
    

    4) 现在您必须在图层中使用此方法,同时将名称传递给 sprite 或其他一些 例如:

    target = CCSprite.sprite(getImageURI("player"));
    

    你只需要在上面的方法中传递下划线之前的名字,真实的名字就像player_1.png,但我们只传递player

    getImageURI 会根据屏幕大小返回一个合适的名字 假设如果我们的屏幕尺寸为 2,那么 getImageURI 将返回

    player_2.png

    所以代码会变成 target = CCSprite.sprite("player_2.png");//getImageURI 会返回 player_2.png

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-20
      • 2011-01-03
      • 1970-01-01
      • 2015-01-12
      • 1970-01-01
      • 1970-01-01
      • 2014-12-07
      • 1970-01-01
      相关资源
      最近更新 更多