Actionscript 3 调整starling手机游戏的大小以适应多种分辨率。
我有一个使用Starling框架用AS3编写的游戏。它是为移动设备而设计的,因此支持大量屏幕非常重要。我写的所有代码都支持多种尺寸,但我遇到了一个障碍,我似乎无法在网上找到解决方案 阶段重缩放和资产重缩放效果很好,但问题是这一行:Actionscript 3 调整starling手机游戏的大小以适应多种分辨率。,actionscript-3,flash,mobile,air,starling-framework,Actionscript 3,Flash,Mobile,Air,Starling Framework,我有一个使用Starling框架用AS3编写的游戏。它是为移动设备而设计的,因此支持大量屏幕非常重要。我写的所有代码都支持多种尺寸,但我遇到了一个障碍,我似乎无法在网上找到解决方案 阶段重缩放和资产重缩放效果很好,但问题是这一行: [SWF(framerate="60", width="768", height="1024", backgroundColor="0x333333")] 设置SWF大小使应用程序永久认为它位于768 x 1024的显示器上。因此,如果我在iPhone而不是ipad
[SWF(framerate="60", width="768", height="1024", backgroundColor="0x333333")]
设置SWF大小使应用程序永久认为它位于768 x 1024的显示器上。因此,如果我在iPhone而不是ipad上运行它,该应用程序将运行,但只会填充前1024像素的高度,并将运行在640像素的宽度上。然而,如果我用iPhone分辨率硬编码上面的代码,它看起来会很棒。所以我的问题是,如何动态地实现这一点?我尝试过调整大小事件侦听器,但没有成功。正如我所说,我的问题不在舞台上,而是在主权财富基金的初始阶段。下面是我的整个初始化类。请让我知道我错过了什么!谢谢
[SWF(framerate="60", width="768", height="1024", backgroundColor="0x333333")]
public class FlappyBird2 extends Sprite
{
private var myStarling:Starling;
public function FlappyBird2()
{
super();
stage.fullScreenSourceRect = new Rectangle(0, 0, Capabilities.screenResolutionX, Capabilities.screenResolutionY);
stage.displayState = StageDisplayState.FULL_SCREEN;
var viewPortRectangle:Rectangle = new Rectangle();
viewPortRectangle.width = stage.stageWidth;
viewPortRectangle.height = stage.stageHeight;
trace("screen res: X: "+ Capabilities.screenResolutionX + "Y: " + Capabilities.screenResolutionY);
myStarling = new Starling(Game, stage, viewPortRectangle);
myStarling.antiAliasing = 1;
myStarling.start();
}
显然,缩放不会让你走得很远 有很多方法可以解决这个问题,但通常需要遵循一些MVC模式,将逻辑和数据从UI绘制中分离出来 完成后,您可以:
- 通过代码或配置文件为每个屏幕分辨率创建不同的视图
- 使UI绘制动态化,以便适应任何分辨率和屏幕DPI
根据您的项目,其中一个选项(或组合)更适合您。试试这个。如果您使用的是多分辨率,您只需要使用比例因子除法,否则请删除除法
var viewPort : Rectangle = new Rectangle(0, 0, stage.fullScreenWidth, stage.fullScreenHeight);
//create the main instance of starling
engine = new Starling(_root, stage, viewPort);
//main configs
engine.stage.stageWidth = viewPort.width / SCALE_FACTOR;
engine.stage.stageHeight = viewPort.height / SCALE_FACTOR;
我希望这会对你有所帮助。
下面还有一个有趣的教程;否则你应该去八哥论坛看看,那里有很多类似的问题
干杯简单
把这个翻过来:
[SWF(framerate=“60”,width=“768”,height=“1024”,backgroundColor=“0x333333”)]
为此:
[SWF(frameRate=“60”,backgroundColor=“0x333333”)]
)() 对于不同的屏幕分辨率,我应该如何使用配置文件?我已经在使用MVC模式,我的应用程序在逻辑之外处理UI,这部分工作正常,我遇到的问题是不同屏幕的配置。对于不同的屏幕分辨率,如何使用配置文件?