system.setScreen(画面モード)
縦画面と横画面を切り替えます。
引数
- 画面モード: 0 横画面(LANDSCAPE)、1 縦画面(PORTRAIT)
注意事項
- 切り替えた画面の向きは、system.setScreen()命令が実行されるまで維持されます。よって、system.setrun()命令を使って、別プログラムを呼び出したとしても、画面の向きは横向きに戻りません。できれば、アプリ内で画面の向きを初期化してください。
- 画面の向きを変えても、グラフィック画面サイズは変更されません。当然、ワーク画面サイズも変更されません(これはこういう仕様にしました)。canvas.setMainBmp()命令を使ってグラフィック画面サイズを変更しておかないと、縦画面に扁平したグラフィックが表示されます。必要であれば、canvas.setWorkBmp()命令でワーク画面もサイズ変更してください。
- 上記グラフィック画面サイズやワークサイズは、system.setrun()命令で別アプリを起動した場合は、自動的に変更されます。
戻り値なし。
使用例
while(true)do canvas.drawCls( color(255,255,255) ) item.clear() item.add("縦向きにする",0) item.add("横向きにする",0) item.add("プログラム終了",0) v = item.radio( "画面の向きを選んでください", v ) if( v==1 )then system.setScreen(1) elseif( v==2 )then system.setScreen(0) else break end --内部グラフィック画面設定の変更 w,h = canvas.getviewSize() canvas.setMainBmp( w, h ) end
加速度センサを利用して、自動的に画面を切り替える例
------------------------------------------ -- 縦横の自動設定 ------------------------------------------ function setDirection() local i local ax,ay sensor.setdevAccel( 1 ) --加速度センサ起動 for i=1,32 do --値が落ち着かないので、とりあえず32回目の値を取得しています。 ax, ay = sensor.getAccel() end sensor.setdevAccel( 0 ) --加速度センサオフ if( ax<5 and ay>5 )then system.setScreen(1) --縦向きに変更 else system.setScreen(0) --横向きに変更 end --内部グラフィック画面設定の変更 local w,h = canvas.getviewSize() canvas.setMainBmp( w, h ) end