1

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

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

或者

使用 setScale() 就可以了。

4

1 回答 1

2

您必须创建一种可以根据屏幕尺寸获取适当图像的方法。

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

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)现在你必须在你的图层中使用这个方法,同时将名称传递给精灵或其他一些例如:

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

于 2013-02-26T09:45:46.460 回答