ページへ戻る
印刷
Starlingの画面サイズの初期化
をテンプレートにして作成 ::
NJF Wiki
xpwiki
:Starlingの画面サイズの初期化 をテンプレートにして作成
開始行:
_mStarlingをStarlingのインスタンス、stageをStageのインス...
var viewPort:Rectangle = RectangleUtil.fit(
new Rectangle(0, 0, GAME_WIDTH, GAME_HEIGHT),
new Rectangle(0, 0, stage.stageWidth, stage.stageHeight),
ScaleMode.SHOW_ALL
);
_mStarling = new Starling(Sprite, stage, viewPort);
_mStarling.stage.stageWidth = GAME_WIDTH;
_mStarling.stage.stageHeight = GAME_HEIGHT;
RectangleUtil.fitのScaleMode.SHOW_ALLを指定することで、以...
&ref(screenSizeShowAll.jpg,mw:480,mh:360);
ScaleMode.SHOW_ALLを変えれば、他の拡大方法も使えます。し...
しかし、タブレットや極端に縦横比の異なる端末などに対応す...
もし十分に時間があり、手間をかける余力があるなら、最も良...
そんなときは、背景だけ大きくして、この黒い帯を消すという...
&ref(backStretch.jpg,mw:480,mh:360);
そのため、まず画面全体に描画領域を広げます。
var viewPort:Rectangle = new Rectangle(0,0,stage.fullScr...
_mStarling = new Starling(Sprite, stage, viewPort);
_mStarling.stage.stageWidth = GAME_WIDTH;
_mStarling.stage.stageHeight = GAME_HEIGHT;
これで画面全体に描画されます。
しかし、これでは縦横比が保たれていないので、背景以外の縦...
そのための比率は以下の方法で計算します。
xScale = yScale = 1;
var r:Number = GAME_WIDTH / GAME_HEIGHT;
if (r > stage.fullScreenWidth / stage.fullScreenHeight){
yScale = stage.fullScreenWidth / GAME_WIDTH * GAME_HEIG...
}else{
xScale = stage.fullScreenHeight / GAME_HEIGHT * GAME_WI...
}
あとは、ここでも求めた比率を使い、背景以外を拡大・縮小し...
baseSprite.scaleX = xScale;
baseSprite.x = GAME_WIDTH * ( 1 - xScale) / 2;
baseSprite.scaleY = yScale;
baseSprite.y = GAME_HEIGHT * ( 1 - yScale) / 2;
ここでbaseSpriteは背景以外をまとめたSpriteです。
この方法で、最低限の手間でタブレット対応も可能です。しか...
そのときには上で求めた比率で割ってやることで、画面のサイ...
var quad:Quad = new Quad( GAME_WIDTH / xScale, GAME_WID...
とします。単色画面を表示するなら、alignPivotをつかって中...
他の注意点として、横にスライドするような画面遷移を使って...
また、PopupManagerを使うと、縦横比が変形しているので、修...
ここの方法を使っても、Androidではナビゲーションなどの領域...
終了行:
_mStarlingをStarlingのインスタンス、stageをStageのインス...
var viewPort:Rectangle = RectangleUtil.fit(
new Rectangle(0, 0, GAME_WIDTH, GAME_HEIGHT),
new Rectangle(0, 0, stage.stageWidth, stage.stageHeight),
ScaleMode.SHOW_ALL
);
_mStarling = new Starling(Sprite, stage, viewPort);
_mStarling.stage.stageWidth = GAME_WIDTH;
_mStarling.stage.stageHeight = GAME_HEIGHT;
RectangleUtil.fitのScaleMode.SHOW_ALLを指定することで、以...
&ref(screenSizeShowAll.jpg,mw:480,mh:360);
ScaleMode.SHOW_ALLを変えれば、他の拡大方法も使えます。し...
しかし、タブレットや極端に縦横比の異なる端末などに対応す...
もし十分に時間があり、手間をかける余力があるなら、最も良...
そんなときは、背景だけ大きくして、この黒い帯を消すという...
&ref(backStretch.jpg,mw:480,mh:360);
そのため、まず画面全体に描画領域を広げます。
var viewPort:Rectangle = new Rectangle(0,0,stage.fullScr...
_mStarling = new Starling(Sprite, stage, viewPort);
_mStarling.stage.stageWidth = GAME_WIDTH;
_mStarling.stage.stageHeight = GAME_HEIGHT;
これで画面全体に描画されます。
しかし、これでは縦横比が保たれていないので、背景以外の縦...
そのための比率は以下の方法で計算します。
xScale = yScale = 1;
var r:Number = GAME_WIDTH / GAME_HEIGHT;
if (r > stage.fullScreenWidth / stage.fullScreenHeight){
yScale = stage.fullScreenWidth / GAME_WIDTH * GAME_HEIG...
}else{
xScale = stage.fullScreenHeight / GAME_HEIGHT * GAME_WI...
}
あとは、ここでも求めた比率を使い、背景以外を拡大・縮小し...
baseSprite.scaleX = xScale;
baseSprite.x = GAME_WIDTH * ( 1 - xScale) / 2;
baseSprite.scaleY = yScale;
baseSprite.y = GAME_HEIGHT * ( 1 - yScale) / 2;
ここでbaseSpriteは背景以外をまとめたSpriteです。
この方法で、最低限の手間でタブレット対応も可能です。しか...
そのときには上で求めた比率で割ってやることで、画面のサイ...
var quad:Quad = new Quad( GAME_WIDTH / xScale, GAME_WID...
とします。単色画面を表示するなら、alignPivotをつかって中...
他の注意点として、横にスライドするような画面遷移を使って...
また、PopupManagerを使うと、縦横比が変形しているので、修...
ここの方法を使っても、Androidではナビゲーションなどの領域...
ページ名: