我正在尝试设置尺寸为960x640像素的图片...我的设备有854x480像素..
我所做的是加载精灵,然后设置为场景背景......
sprite = new Sprite(0, 0, fieldITexture, BaseActivity.getSharedInstance().getVertexBufferObjectManager());
setBackground(new SpriteBackground(sprite));
但是很明显,图像越过屏幕,我尝试使用setScale和setScaleCenter,但我没有给出任何结果......看到这个图像:http://db.tt/pcuJa4vE
要设置相机尺寸,我已根据设备进行了设置:
final Display display = getWindowManager().getDefaultDisplay();
CAMERA_WIDTH = display.getWidth();
CAMERA_HEIGHT = display.getHeight();
mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
return new EngineOptions(true, ScreenOrientation.LANDSCAPE_FIXED, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), mCamera);
那么,我该怎么做才能将足球场缩放到屏幕尺寸?我不关心方面
答案 0 :(得分:4)
不要使用device.getWitdh()和device.getHeight()使用固定的宽度和高度
public final static int CAMERA_WIDTH = 720;
public final static int CAMERA_HEIGHT = 480;
AndEngine将为您缩放所有图像,有时您会因为缩放而在屏幕边缘看到一个小黑条。但几乎不值得注意。
@Override
public EngineOptions onCreateEngineOptions()
{
camera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
EngineOptions engineOptions = new EngineOptions(true, ScreenOrientation.LANDSCAPE_FIXED, new FillResolutionPolicy(), camera);
return engineOptions;
}
答案 1 :(得分:4)
只是把它放在那里,我相信设备有2个主要比例(5:3和4:3)。 大多数其他人比4:3更接近5:3(所以5:3应该是默认值)。
我希望尽可能支持最佳图形,而无需通过所有屏幕尺寸。 所以我采用了这两个比率。
现在我按照以下方式进行了设置:
定义
String fileFolderForRatio = "";
int CAMERA_WIDTH = 1280;
int CAMERA_HEIGHT = 768;
@Override
public EngineOptions onCreateEngineOptions() {
instance = this;
// getting the device's screen size
Point screenSize = getScreenSizeByRatio();
CAMERA_WIDTH = screenSize.x;
CAMERA_HEIGHT = screenSize.y;
mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
final EngineOptions engineOptions = new EngineOptions(true, ScreenOrientation.LANDSCAPE_SENSOR,
new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), mCamera);
engineOptions.getAudioOptions().setNeedsSound(true);
engineOptions.getAudioOptions().setNeedsMusic(true);
return engineOptions;
}
和功能(注意检查宽度和高度,有时AndEngine会反过来检测它)
public Point getScreenSizeByRatio()
{
final Display display = getWindowManager().getDefaultDisplay();
double sw = display.getWidth();
double sh = display.getHeight();
double ratio = sw / sh;
if (sw < sh) ratio = sh/sw;
Point screenPoints = new Point();
if (ratio > 1.3 && ratio < 1.4)
{
fileFolderForRatio = "1024x768";
screenPoints.x = 1024;
screenPoints.y = 768;
} else
{
fileFolderForRatio = "1280x768";
screenPoints.x = 1280;
screenPoints.y = 768;
}
Debug.e("RATIO", fileFolderForRatio);
return screenPoints;
}
将图形(针对该屏幕尺寸进行优化)放在1024x768文件夹和1280x768文件夹中。
这样你就有了半静态的屏幕尺寸。 AndEngine会为你重新调整其余部分。
(请注意,对于精灵的屏幕定位,你必须检查它,因为它对于2比率是不一样的。 但是来自Ios开发者并不是那么困难(iPad和iPhone)
希望有所帮助
答案 2 :(得分:-1)
替换: 新的RatioResolutionPolicy(WIDTH,HEIGHT) 有: 新的FillResolutionPolicy()
这填满了整个屏幕。