トップページ > 過去ログ > 記事閲覧
ウィンドウサイズの変更について
名前:田中太郎 日時: 2013/04/21 14:39

現在、ウィンドウサイズを変更して遊ぶゲームを作ろうとしています。 そこで SetWindowSize を使ってウィンドウサイズを変更しようとしていたのですが、この関数を使うと表示していた画像が伸縮?してしまいます。 (例えば640×480で表示してるときに480×640に変更すると表示されている画像が縦長になってしまいます) 表示してる画像に変化を与えずウィンドウサイズを変更することはできるでしょうか? よろしくお願いします。 環境:win7 VC++ DxLIb使用

Page: 1 |

Re: ウィンドウサイズの変更について ( No.1 )
名前:にづたん 日時:2013/04/21 19:10

SetGraphMode( 480 , 640 , 32 ); をWinMain内に入れれば 行けました。
Re: ウィンドウサイズの変更について ( No.2 )
名前:田中太郎 日時:2013/04/21 19:45

SetGraphModeを使用すると表示していた画像などが削除されてしまうので、ゲームをプレイしてる時に使うのは難しいかと思います。
Re: ウィンドウサイズの変更について ( No.3 )
名前:int 日時:2013/04/24 13:22

試してないですが、 SetWindowSizeChangeEnableFlag( int Flag, int FitScreen = TRUE ) ; の関数でFitScreenをFALSEに指定してみたらどうでしょうか
Re: ウィンドウサイズの変更について ( No.4 )
名前:田中太郎 日時:2013/04/24 22:45

そちらの関数も試しては見たのですが、FALSEにするとサイズが変わらなくなってしまい出来ませんでした。
Re: ウィンドウサイズの変更について ( No.5 )
名前:管理人 日時:2013/04/30 00:26

intさんも仰られていますが、 SetWindowSizeChangeEnableFlag( TRUE, FALSE ) ; を実行すると自由に形を変更することができます、但し SetGraphMode で指定した画面サイズ 以上にウインドウを大きくすることはできません( ウインドウサイズに合わせて画面サイズが 変わっているわけではなく単に見える範囲を狭めているだけなので ) なので、デスクトップのサイズ内で自由にサイズを変更したい場合は DxLib_Init の前に int DesktopW, DesktopH ; GetDefaultState( &DesktopW, &DesktopH, NULL ) ; SetGraphMode( DesktopW, DesktopH, 32 ) ; ↑このような感じでデスクトップと同じサイズの画面サイズにして、初期画面サイズに合わせて SetWindowSize でサイズを変更します 画面サイズ自体は常にデスクトップと同じサイズなので、ウインドウのサイズを GetWindowSize で取得して描画する範囲を決定します よろしければお試しになってみてください

Page: 1 |