【发布时间】:2013-02-08 02:45:36
【问题描述】:
根据不同的2屏幕分辨率,不能为每个设备使用一个图像。
那么,在 Cocos2d-android 中如何管理这个东西呢?
或
使用 setScale() 没问题。
【问题讨论】:
标签: cocos2d-android
根据不同的2屏幕分辨率,不能为每个设备使用一个图像。
那么,在 Cocos2d-android 中如何管理这个东西呢?
或
使用 setScale() 没问题。
【问题讨论】:
标签: cocos2d-android
您必须创建一个可以根据屏幕大小获取适当图像的方法。
以下步骤可以帮助您获取图像
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
【讨论】: